无法将数据传递给方法

时间:2014-01-27 09:20:02

标签: c# jquery asp.net .net ajax

我第一次尝试在ASP.NET中使用AJAX - 尝试将以下数据传递到相应的aspx页面中的WebMethod:

$.ajax({
    type: "POST",
    url: "myurl.aspx/SaveScreen",
    data: "{'data': " + JSON.stringify(arrayRows.data) + "}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        alert(msg.d);
    }
});

这是我在aspx页面中的WebMethod。我试过传递一个简单的数据对象,它只包含一个键和值,它成功运行。尝试传递此对象时,出现错误,指出存在代码500的内部服务器错误。

我可能做错了什么?

3 个答案:

答案 0 :(得分:2)

试试这个: data: {"data": JSON.stringify(arrayRows.data)}

答案 1 :(得分:0)

您可以将数据字符串包装在引号中:

$.ajax({
    type: "POST",
    url: "SpecifyPositioning.aspx/SaveScreen",
    data: "{'data': '" + JSON.stringify(arrayRows.data) + "'}", //Added ' around JSON.stringify to pass string instead of object
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        alert(msg.d);
    }
});

然而,这将是一个更清洁的解决方案:

data: {"data": JSON.stringify(arrayRows.data)},

答案 2 :(得分:0)

试试这个:

data: "{data: '" + JSON.stringify(arrayRows.data) + "'}"