将Form Serialize和列表传递到控制器不起作用



我有这样的控制器:

public ActionResult SaveWorkOrder(DTO_WorkOrder objWork, List<DTO_PartsWO> listTry)
{
//something
}

型号:

public class DTO_WorkOrder
{
public string Id { get; set; }
public string WoNo { get; set; }
public string ReqNo { get; set; }
public string ReqSparepartDate { get; set; }
public List<DTO_PartsWO> PartsList { get; set; }
}

这是我将数据传递给控制器的javascript:

function SaveWorkOrder() 
{
debugger;
var dd = $('#tbParts').DataTable().rows().data().toArray();
var vDataDet = new Array();
//Loop through the Table rows and build a JSON array.
$.each(dd, function (i, value) {
debugger;
var dataDetail = {};
dataDetail.Line = i;
dataDetail.PartCode = value[1];
dataDetail.PartDesc = value[2];
vDataDet.push(dataDetail);
debugger;
});
var tmp = $('#WorkOrderForm').serialize();
$.ajax({
type: 'POST',
url: '/Transactions/WorkOrder/SaveWorkOrder',
data:  JSON.stringify({ objWork: tmp, listTry: vDataDet}),
success: function (mdl)
{
debugger;
},
error: function (mdl)
{
debugger;
}
)}
}

代码传递序列化表单,但不传递列表,我的列表为null。。。请帮忙,已经编写了3天的代码来通过列表和序列化表单,但尚未运行

我不知道这是否是正确的方法,但它运行良好,相反,使用serialize,serializeArray运行良好,所以我可以在表单中添加列表参数,所以这是我使用的代码:

function SaveWorkOrder() 
{
debugger;
var dd = $('#tbParts').DataTable().rows().data().toArray();
var vDataDet = new Array();
// step 1 serialize array the form
var data = $("#WorkOrderForm").serializeArray();
//Loop through the Table rows and build a JSON array.
$.each(dd, function (i, value) {
debugger;
data[data.length] = { name: "PartsList[" + i + "].Line", value: i };    
data[data.length] = { name: "PartsList[" + i + "].PartCode", value: value[1] };  
data[data.length] = { name: "PartsList[" + i + "].PartName", value: value[2] };  
debugger;
});
$.ajax({
type: 'POST',
url: '/Transactions/WorkOrder/SaveWorkOrder',
data: data,
success: function (mdl)
{
debugger;
},
error: function (mdl)
{
debugger;
}
})
}

这是控制器:

public ActionResult SaveWorkOrder(DTO_WorkOrder objWork)
{
//something
}

这是型号:

public class DTO_WorkOrder
{
public string Id { get; set; }
public string WoNo { get; set; }
public string ReqNo { get; set; }
public string ReqSparepartDate { get; set; }
public List<DTO_PartsWO> PartsList { get; set; }
}
public class DTO_PartsWO
{
public string WoNo { get; set; }
public Int32 Line { get; set; }
public string PartCode { get; set; }
public string PartName { get; set; }
}

您可以在对象和详细信息列表中的pictureList中看到结果。

最新更新