未知的web方法,尝试使用AJAX发送json

时间:2016-10-10 07:36:24

标签: c# json ajax

我正在尝试将一些数据(参数)从客户端(html)传递到服务器端(C#代码隐藏)到一个方法,这是使用JSON格式的AJAX完成的,但我得到以下内容错误:

  

未知网络方法

我的AJAX代码是:

var jsonObj = { "sCriterion": sCriterion };
            $.ajax({
                type: "POST",
                url: "NewToken.aspx/GetSelection",
                data: jsonObj,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("Request: " + JSON.stringify(XMLHttpRequest) + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
                },
                success: function (result) {
                    alert(data);
                    alert("We returned: " + result);
                }
            });

这是我的代码隐藏方法:

[WebMethod]
private static string GetSelection(string selectedItem)
{

    var json = new JavaScriptSerializer();
    var data = json.Deserialize<Dictionary<string, Dictionary<string, string>>[]>(selectedItem.ToString());
    var jsonObj = json.Serialize("proceeded");
    return jsonObj;
}

2 个答案:

答案 0 :(得分:2)

该方法应该public static才能正常工作。不私密!

[WebMethod]
public static string GetSelection(string selectedItem)
{

    var json = new JavaScriptSerializer();
    var data = json.Deserialize<Dictionary<string, Dictionary<string, string>>[]>(selectedItem.ToString());
    var jsonObj = json.Serialize("proceeded");
    return jsonObj;
}

答案 1 :(得分:1)

您的GetSelection方法必须为public,但您将其设置为私有。