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。不,我不填写“标题”字段。 –
显示你的代码:) –