Я пытаюсь передать какой-то простой JSON в ASP.NET 4.5 Webmethod из jQuery. И он работает не так, как я хочу. Он работает, если я принимаю входы как отдельные параметры:
[WebMethod]
public static Address GetJSonAddress(string name, string street)
Но если я попытаюсь воспринимать его как объект, он не работает, то, что передается, просто null:
[WebMethod]
public static Address GetJSonAddress(Address newAddress)
Я пробовал Webmethods, Pagemethods, WCF, используя DataContractJsonSerializer... ничего. Класс 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 параметром. Любая помощь приветствуется.