Próbuję przekazać niektóre proste JSON do programu ASP.NET 4.5 Webmethod z jQuery. I nie działa tak, jak tego chcę. To działa, jeśli przyjąć wejść jako oddzielne parametry:Przepuścić obiekt zdefiniowany przez użytkownika do ASP.NET Webmethod z jQuery, przy użyciu JSON
[WebMethod]
public static Address GetJSonAddress(string name, string street)
Ale jeśli próbuję wziąć go jako obiekt to nie działa, co zostanie przeniesiony w to po prostu zerowa:
[WebMethod]
public static Address GetJSonAddress(Address newAddress)
mam wypróbowałem Webmethods, Pagemethods, WCF przy użyciu DataContractJsonSerializer ... nic. Klasa adresu jest odpowiednio udekorowana przy pomocy Datamember/DataContract. Właściwości są dopasowane, w tym przypadku.
The jQuery, w którym próbowałem wszelkiego rodzaju przekazywania danych, w tym zawijanie go w obiekcie Address ... jeśli zrobię to w inny sposób niż to, co mam Webmethod nie jest wywoływane i otrzymuję błąd 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);
}
});
}
Ostatecznie będę musiał to zrobić z 121 ciągami wejściowymi i tak naprawdę nie chcę mieć metody z 121 parametrami. Każda pomoc jest doceniana.
Co się stanie, jeśli używasz 'dane: {newAddress: JSON.stringify (adres)}'? – NoLifeKing
Webmethod nie jest wywoływany i pojawia się błąd 500 w przeglądarce. POST wygląda ok: {'Adres': {"imię": "imię", "ulica": "ulica", "miasto": "miasto", "zip": "11111"}} –