我无法使AutoCompleteExtender正常工作。这可能是微不足道的。在VS2010中使用.NET 4默认的ASP.NET项目。
代码:
<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 Control Toolkit示例中逐字复制的。这真让我很沮丧。我已经在这里查看了其他问题,但还没有找到解决方案。
我没有任何错误或例外。在文本框中输入什么都不起作用,Web服务没有达到断点。
答案 0 :(得分:2)
查看此示例,确保您的匹配:http://www.asp.net/ajaxlibrary/act_AutoComplete_simple.ashx
另外,请确保Web服务具有确切的参数;如果不是相同的签名,那也可能有问题。
HTH。
答案 1 :(得分:1)
确保输入参数名称的大小正确:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] GetCompletionList(string prefixText, int count)
确保使用 prefixText 和计数并使用正确的大小写。
答案 2 :(得分:1)
在我重复使用基于AutoCompleteExtender的UserControls的新网站上,这种情况不止一次发生在我身上。我建议您使用Fiddler来捕获并检查浏览器中的POST以及服务器的响应。安装和启动都是轻而易举的事。一旦它运行,你在TextBox中输入几个字符,然后检查Fiddler捕获的Web Session条目。如果您看到一个或多个包含错误代码的条目,请检查它们以查找由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]
答案 3 :(得分:0)
尝试从服务路径中删除〜/。
ServicePath="services/AutoComplete.asmx"