我正在尝试学习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;
}