AjaxControlToolkit - 无法使AutoCompleteExtender正常工作
问题描述:
我无法使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服务不会触及到中断点。
答
请确保您有正确的输入参数的名称的外壳:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] GetCompletionList(string prefixText, int count)
确保您使用prefixText和计数用正确的大小写。
答
尝试从服务路径中删除〜/。
ServicePath="services/AutoComplete.asmx"
答
退房这个例子中,请确保你的比赛:http://www.asp.net/ajaxlibrary/act_AutoComplete_simple.ashx
此外,确保Web服务具有的确切参数;如果不是相同的签名,那也可能是有问题的。
HTH。
答
在我重新使用基于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]
你得到任何错误?这是什么行为? – 2011-01-28 13:27:11
我没有收到任何错误或例外。在文本框中键入不会执行任何操作,Web服务不会触及到中断点。 – Sam 2011-01-28 13:30:08
在服务中放置一个断点,看看它是否触发。确保你没有任何权限问题。另外请确保您的服务使用[System.Web.Script.Services.ScriptService]属性进行装饰以通过JSON进行通信。 – e36M3 2011-01-28 13:37:24