'Chúc mừng,JQuery Ajax và Đăng nhiều đối tượng phức tạp tới Bộ điều khiển MVC asp.net
Có vấn đề khi đăng nhiều tham số đến một phương thức điều khiển mc.
controller...
[HttpPost]
public ActionResult SaveSomething(SomeDomainObject domainObject, bool anOption)
{
}
Ajax Code...
function performPostData(postDataOptions,closeWindow) {
$.ajax({ type: postDataOptions.httpVerb,
url: postDataOptions.url,
datatype: "json",
traditional: true,
data: postDataOptions.data(),
success: function() {
if (closeWindow) {
var window = $('#window').data("kendoWindow");
window.close();
}
},
error: function (xhr, status, error) {
var msg = JSON.parse(xhr.responseText);
var validator = $("#editBase").kendoValidator().data("kendoValidator"),
status = $(".editValidationStatus");
var err = msg.Message;
status.text(err).addClass("invalid");
}
});
}
JScript function to format data...
function GetPostData()
{
var _domainObject={
prop1: 1,
prop2: 2,
prop3: 3
};
return JSON.stringify({ domainObject:_domainObject,anOption: true});
}
Tôi nhìn thấy trong chụp mạng rằng đây là cơ quan yêu cầu:
{"domainObject":{"prop1":1,"prop2":2,"Prop3":3},"anOption":true}
Bộ điều khiển làm tăng ngoại lệ sau đây:
The parameters dictionary contains a null entry for parameter 'anOption' of non-nullable type 'System.Boolean' for method 'System.Web.Mvc.ActionResult SaveSomething(Domain.Data.SomeDomainObject, Boolean)' in 'Reports.Controllers.TestController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters
Tôi đã được quay bánh xe của tôi trong nhiều giờ cố gắng có được một đối tượng tên miền đơn giản và một tham số khác của kiểu bool để được tuần tự hóa và truyền cho bộ điều khiển của tôi. Bất kỳ ý tưởng?
Điều tiếp theo tôi đã thử là tạo một SaveObjectRequestObject như SaveObjectRequest: DomainObject {public bool AnOption {get; set;}}. Điều này thực sự truy tìm thông qua bộ điều khiển nhưng thuộc tính cơ sở đối tượng của tôi không bao giờ được thiết lập. –