我正在尝试将一些简单的 JSON 从 jQuery 传递给 ASP.NET 4.5 Webmethod。它并没有按照我想要的方式工作。如果我接受输入作为单独的参数,它会起作用:
[WebMethod]
public static Address GetJSonAddress(string name, string street)
但是,如果我尝试将它作为一个对象它不起作用,那么传入的内容就是 null:
[WebMethod]
public static Address GetJSonAddress(Address newAddress)
我已经使用 DataContractJsonSerializer 尝试了 Webmethods、Pagemethods、WCF ......什么都没有。Address 类使用 Datamember/DataContract 进行了适当的修饰。属性匹配,包括大小写。
jQuery,我在其中尝试了各种传递数据的方式,包括将其包装在 Address 对象中......如果我以任何其他方式而不是我所拥有的方式执行此操作,则不会调用 Webmethod 并且我收到错误 500:
Save2 = function () {
var address = { prefix: GLOBALS.curr_prefix };
$('input[id^=' + GLOBALS.curr_prefix + '],select[id^=' + GLOBALS.curr_prefix + ']').each(function () {
address[this.id.substr(4)] = $.trim($(this).val());
})
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/WebServices/Insert",
data: JSON.stringify(address),
dataType: "json",
success: function (data, textStatus) {
console.log(data, textStatus);
},
failure: function (errMsg) {
MsgDialog(errMsg);
}
});
}
最终我将不得不使用 121 个输入字符串来执行此操作,并且真的不希望有一个具有 121 个参数的方法。任何帮助表示赞赏。