2011-01-28 59 views
1

我无法使AutoCompleteExtender正常工作。这可能是微不足道的。在VS2010中使用.NET 4默认ASP.NET项目。AjaxControlToolkit - 无法使AutoCompleteExtender正常工作

代码:

<asp:TextBox runat="server" ID="example" autocomplete="off" /> 
<ajaxToolkit:AutoCompleteExtender 
      ID="autocomplete" 
      runat="server" 
      TargetControlID="example" 
      ServicePath="~/services/AutoComplete.asmx" 
      ServiceMethod="GetCompletionList" 
      CompletionInterval="1" /> 

Web服务的工作 - 将代码从AJAX控件工具包的样品几乎逐字复制。这真让我很沮丧。我在这里看过其他问题,但还没有找到解决方案。

我没有收到任何错误或异常。在文本框中键入不会执行任何操作,Web服务不会触及到中断点。

+0

你得到任何错误?这是什么行为? – 2011-01-28 13:27:11

+0

我没有收到任何错误或例外。在文本框中键入不会执行任何操作,Web服务不会触及到中断点。 – Sam 2011-01-28 13:30:08

+0

在服务中放置一个断点,看看它是否触发。确保你没有任何权限问题。另外请确保您的服务使用[System.Web.Script.Services.ScriptService]属性进行装饰以通过JSON进行通信。 – e36M3 2011-01-28 13:37:24

回答

1

请确保您有正确的输入参数的名称的外壳:

[System.Web.Services.WebMethod] 
[System.Web.Script.Services.ScriptMethod] 
public string[] GetCompletionList(string prefixText, int count) 

确保您使用prefixText计数用正确的大小写。

0

尝试从服务路径中删除〜/。

ServicePath="services/AutoComplete.asmx" 
1

在我重新使用基于AutoCompleteExtender的UserControls的新网站上,这种情况不止一次发生在我身上。我建议您使用Fiddler从浏览器中捕获和检查POST以及服务器的响应。安装和启动是一件轻而易举的事情。运行后,您可以在TextBox中键入几个字符,然后检查Fiddler捕获的Web会话条目。如果您看到一个或多个带有错误代码的条目,请检查它们是否由您的IIS(或ASP.Net)服务器生成的错误详细信息。你通常会很快到达底部。

最近,我的问题是,我忘了取消对WebService类的ScriptService属性:

// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]