JavaScript调用页面方法:错误500. JSON

时间:2010-03-22 21:27:39

标签: c# asp.net javascript ajax json

我在这里使用自动完成控件:http://www.ramirezcobos.com/labs/autocomplete-for-jquery-js/comment-page-2/

我把它修改为:

var json_options;
    json_options = {
        script:'ReportSearch.aspx/GetUserList?json=true&limit=6&',
        varname:'input',
        json:true,
        shownoresults:true,
        maxresults:16,
        callback: function (obj) { $('#json_info').html('you have selected: '+obj.id + ' ' + obj.value + ' (' + obj.info + ')'); }
    };

$('#ctl00_contentModule_txtJQuerySearch').autoComplete(json_options);

我在C#Code behind(aspx.cs)

中有以下方法
    [System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string[] GetUserList(string input)
{
    List<string> lUsers = new List<string>();

    Server.DAL.SQLServer2005.User user = new Server.DAL.SQLServer2005.User();
    Server.Info.AuthUser aUser = (Server.Info.AuthUser)HttpContext.Current.Session["AuthUser"];
    List<Server.Info.User.UserDetails> users = user.GetUserList(aUser, input, 16, true);
    users.ForEach(delegate(ReportBeam.Server.Info.User.UserDetails u)
    {
        lUsers.Add("(" + u.UserName + ")" + u.LastName + ", " + u.FirstName);
    });
    return lUsers.ToArray();
}

我得到的错误是:

  服务器错误。未知的网络方法   GetUserList。参数名称:methodName

如果我更改任何参数名称,我会收到错误,告诉我参数名称不匹配。现在一切都是应该的,这是轰炸。

任何帮助都会摇滚。

1 个答案:

答案 0 :(得分:1)

如果您的代码在用户控件中(而不是在实际的aspx中),则可能会导致问题。我想它不应该,但我自己也有问题,不记得它们看起来如何,但最后我反驳说我的web方法放在asmx文件而不是aspx文件中,如果它们是从除了aspx之外的任何东西都可以获得,而且它已经很好了=)