将JSON传递给aspx webmethod 500内部服务器错误

时间:2017-03-10 18:21:16

标签: c# jquery asp.net json ajax

我正在尝试学习JSON和jQuery,在我深入研究任何过于复杂的事情之前,我想我会尝试一个简单的例子让我加快速度。

我有一个按钮,当点击时我想将JSON对象传递给WebMethod,对它执行一些字符串操作并返回到客户端。

但是当我点击按钮时没有任何反应,浏览器控制台会显示以下错误:

  

POST http://localhost:53388/myfolder/foo/aspx/setrecord 500(内部   服务器错误)

非常感谢任何帮助

的jQuery

$('#SaveButton').click(function () {
    var jsonObj = { "data":[{ "id": 1, "name": "Zippy" }, { "id": 2, "name": "George" }, { "id": 3, "name": "Bungle" }, { "id": 4, "name": "geoffrey"}] }
    jsonObj = JSON.stringify(jsonObj);
    SaveNewOrder(jsonObj);
})

function SaveNewOrder(jsonObj) {
    $.ajax({
        type: "POST",
        url: "foo.aspx/setrecord",
        data: jsonObj,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccess,
        failure: function (response) {
            alert(response.d);
        }
    });
}
function OnSuccess(response) {
    $('#OutputDiv').html(response.d);
}

Classes and WebMethod

public class ListOfDestinationColumns
{
    public List<DestinationColumn> data { get; set; }
}

public class DestinationColumn
{

    public int id { get; set; }
    public string name { get; set; }
}

[WebMethod]
public static string setrecord(string jsonObj)
{
    ListOfDestinationColumns Destinations = new JavaScriptSerializer().Deserialize<ListOfDestinationColumns>(jsonObj);

    string output = "Start<br/>";
    foreach (var item in Destinations.data)
    {
        output += string.Format("id: {0}, name: {1}<br />", item.id.ToString(), item.name);
    }
    output += "End";
    return output;
}

0 个答案:

没有答案