0
我有一個ViewModel
像這樣:如何綁定數組嵌套場與jQuery在ASp.NET MVC
public class SaveWorkOrderViewModel
{
public Guid WorkOrderId { get; set; }
public List<SaveWorkOrderDelayReasonViewModel> DelayReasons { get; set; }
}
public class SaveWorkOrderDelayReasonViewModel
{
public Guid DelayReasonId { get; set; }
public string Title { get; set; }
}
,我有controller
是得到SaveWorkOrderViewModel
作爲PARAM像這樣:
[HttpPost]
public virtual JsonResult Save(SaveWorkOrderViewModel saveWorkOrderViewModel)
{
....
}
到bind
這個數據我試過像這樣:
var workOrderId = $(this).data('workOrderId'); // return guid
var DelayReasons = $("#drpdelay").select2("val"); // return array of guid
var saveWorkOrderViewModel = {
workOrderId: workorderId,
DelayReasons: {
DelayReasonId:DelayReasons
}
};
但是當Post Page時,我得到null
爲DelayReasons
。
我找不到任何類似的帖子來解決這個問題。
更新:
我爲發送Ajax調用腳本是:
$.ajax({
url: '@Url.Action(MVC.Admin.WorkOrder.Save())',
data: { saveWorkOrderViewModel },
type: "POST",
success: function (data) {
showMessage(data.message, data.notificationType);
if (data.result) {
RefreshKendoGrid('woGrid');
}
},
error: function (response) { }
});
最後我改變scrips喜歡這一點,並以其優良的工作:
var fields = [];
$(delays).each(function (index, value) {
var obj = {};
obj["DelayReasonId"] = value;
obj["Title"] = null;
fields.push(obj);
});
var saveWorkOrderViewModel = {
workOrderId: workorderId,
DelayReasons: fields
};
你使用ajax提交這個嗎?如果是這樣,請顯示腳本的代碼。 'SaveWorkOrderDelayReasonViewModel'包含一個屬性'Title'。你沒有提交? –
是的我使用ajax。不,我不填寫「標題」字段。 –
顯示你的代碼:) –