使用asmx问题进行jQuery自动完成

我有一个奇怪的问题。我正在尝试使用asmx web服务的jQuery自动完成。我的JavaScript代码如下:
$('#txtUsers').autocomplete('AjaxHandler.asmx/GetUserData', {
    width: 320,
    max: 5,
    minChars: 3,
    parse: function(data) {
        var items = data.d;
        var parsed = [];
        for (var i = 0; i < items.length; i++)
            parsed.push({
            data: [items[i]],
            value: items[i],
            result: [items[i]]
        });
        return parsed;
    }
});
我的网络服务代码是:
[WebService]
[ScriptService]
public class AjaxHandler : WebService
{
    [WebMethod]
    public List<UserData> GetUserData(string q)
    {
        //My code here.....
    }
}
但是,我的Web方法未从自动完成中调用。但是每当我尝试从jQuery.ajax调用相同的web方法时,它都会被正确触发。有帮助吗?     
已邀请:
我检查了自动完成发送获取请求,但您只接受发布请求。所以,我看到你也发现了它。 我建议使用简单的HttpHandler,并使用newton json序列化器将数据作为json返回,因为你的web服务重新“包装”了数据。 它应该是非常简单的处理程序:
List<UserData> items = GetUserDataItems();
string json = JsonConvert.SerializeObject(items);
//将json返回给客户端 同样在客户端代码中将dataType设置为json:
dataType: "json",
并解析如下:
parse: function (data) {
    return $.map(data, function (row, i) {
        return {
            data: row,
            value: row,
            result: row
        }
    });
},
    
是的,我也支持这个问题。 ScriptService和ScriptMethod都不能帮助自动完成。最简单的解决方法是将.asmx转换为.ashx,并在JSON序列化程序的帮助下管理AJAX插件所期望的返回结果。     

要回复问题请先登录注册