【发布时间】:2020-04-27 08:29:05
【问题描述】:
我有这样的控制器:
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;
}
)}
}
代码通过序列化表单但不是列表,我的列表为空... 请帮忙,已经编写了 3 天的代码以通过列表和序列化表单但没有工作
【问题讨论】:
-
请注意,默认的
contentType不是Json,.serialize()使用默认的 contentType 生成类似于queryString的数据。 -
感谢@Sajid 先生的回答,如果这是问题所在,该如何解决?因为我需要通过两者。正如您在我的模型中看到的那样,我将 DTO_PartWO 列表放入并尝试使用此代码
data: $('#WorkOrderForm').serialize() + "&PartList="+VDataDet填充该列表,但列表仍然为空 -
我不认为你可以将两个复杂对象传递给你的控制器,限制是 1 个复杂对象,你需要把它们都放在一个 dto 中。
-
@sayahimad 有样品吗?考虑到列表超过 1 行,它真的有效吗?我尝试通过多种方式推送或附加 DTO_PartWO 中的列表,但都没有成功
-
感谢大家的帮助
标签: javascript c# jquery ajax model-view-controller