在ajax中传递序列化表单和数组


你好

我正在尝试传递一个包含 bool 和 DataTable 的表单,我已根据 Datatable 文档将其转换为数组。

 var aData = $('#dtPurchaseEnquiryLines').DataTable().rows().data().toArray();

  var formData = $("#PurchaseEnquiryDetails").serializeArray();


 $.ajax({
        type: "POST",
        url: "/PurchaseEnquiry/UpdatePEHeader",
        data: { oPE: jsonData, oLines: aData } 
})

如果我使用serializeArray传递它,表单中的bool总是作为false传回。

如果我将集合设置为

var formData = $("#PurchaseEnquiryDetails").serialize();

表单作为 null 传递给控制器​​。 如果我从 ajax 中删除数据表数组输入,则 from 会传递到控制器,并且 bool 为 true。

我尝试为两个输入构建一个对象并将其作为 stringify 发布,但尽管表单已正确通过,但数据表数组在控制器上为空。

我确实有一个可行的解决方案

                                        var aData = $('#dtPurchaseEnquiryLines').DataTable().rows().dat();

var formData = $("#PurchaseEnquiryDetails").serialize();


var jsonData = {};
       

$(formData).each(function (index, obj) {
          if (obj.name === "ReviewRequired1" && !jsonData.hasOwnProperty(obj.name)) {
        jsonData[obj.name] = obj.value; } 
else if (!jsonData.hasOwnProperty(obj.name)) {
  jsonData[obj.name] = obj.value; }
 });

 $.ajax({
     type: "POST",
     url: "/PurchaseEnquiry/UpdatePEHeader",
     data: { oPE: jsonData, oLines: aData } 
})   

我只是认为这似乎有点胡言乱语,并不是一个好的解决方案。 有人可以帮忙吗?

我尝试过的:

var aData = $('#dtPurchaseEnquiryLines').DataTable().rows().dat();

var formData = $("#PurchaseEnquiryDetails").serialize();


 var jsonData = {};
       

     $(formData).each(function (index, obj) {
           if (obj.name === "ReviewRequired1" && !jsonData.hasOwnProperty(obj.name)) {
           jsonData[obj.name] = obj.value;
    } else if (!jsonData.hasOwnProperty(obj.name)) {
      jsonData[obj.name] = obj.value;
  }
});

$.ajax({
     type: "POST",
     url: "/PurchaseEnquiry/UpdatePEHeader",
      data: { oPE: jsonData, oLines: aData } 
})   

コメント

タイトルとURLをコピーしました