Tôi đang cố chuyển một số JSON đơn giản tới ASP.NET 4.5 Webmethod từ jQuery. Và nó không hoạt động theo cách tôi muốn. Nó hoạt động nếu tôi chấp nhận đầu vào như các thông số riêng biệt:Chuyển một đối tượng được định nghĩa bởi người dùng tới ASP.NET Webmethod từ jQuery, bằng cách sử dụng JSON
[WebMethod]
public static Address GetJSonAddress(string name, string street)
Nhưng nếu tôi cố gắng mang nó như một đối tượng nó không hoạt động, những gì được thông qua trong chỉ đơn giản là null:
[WebMethod]
public static Address GetJSonAddress(Address newAddress)
Tôi có đã thử Webmethods, Pagemethods, WCF bằng cách sử dụng DataContractJsonSerializer ... không có gì. Lớp Địa chỉ được trang trí phù hợp với Datamember/DataContract. Các thuộc tính được so khớp bao gồm cả trường hợp. JQuery, trong đó tôi đã thử tất cả các cách truyền dữ liệu bao gồm gói nó trong một đối tượng Địa chỉ ... nếu tôi thực hiện nó theo bất kỳ cách nào khác với những gì tôi có Webmethod không được gọi và tôi gặp lỗi 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);
}
});
}
Cuối cùng tôi sẽ phải thực hiện điều này với 121 chuỗi đầu vào và thực sự không muốn có phương pháp với 121 tham số. Bất kỳ trợ giúp được đánh giá cao.
gì sẽ xảy ra nếu bạn sử dụng 'data: {newAddress: JSON.stringify (địa chỉ)}'? – NoLifeKing
Webmethod không được gọi và tôi gặp lỗi 500 tại trình duyệt. POST có vẻ ok: {'Address': {"name": "name", "street": "street", "city": "city", "zip": "11111"}} –