AjaxControlToolkit - 无法使AutoCompleteExtender正常工作

时间:2011-01-28 13:25:00

标签: asp.net asp.net-ajax ajaxcontroltoolkit

我无法使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服务没有达到断点。

4 个答案:

答案 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"