[ad_1]
こんにちは
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 を使用して渡すと、フォームからのブール値は常に false として返されます。
セットを次のように設定すると
var formData = $("#PurchaseEnquiryDetails").serialize();
フォームはコントローラーに null として渡されます。 ajaxからデータテーブル配列入力を削除すると、fromはブール値をtrueとしてコントローラーに正常に渡します。
両方の入力のオブジェクトを構築し、これを stringify として投稿しようとしましたが、フォームは正しく渡されたにもかかわらず、データテーブル配列がコントローラー上で null になります。
私には実用的な解決策があります
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 } })
[ad_2]
コメント