-1
を使用してコントローラにビューから2つのJSON値を送信するためにどのようにこれは私のスクリプトです:はEF
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
function btnadHocSave() {
debugger
var lv_header = $("#Header").serializeObject(); // this is header <fieldset> tag
var lv_detail = $("#SubmitMachine").serializeObject(); // this is detail <fieldset> tag
$.ajax({
type: "POST",
url: '@Url.Action("UpdateMachine")',
contentType: "application/json",
dataType: "JSON",
data: {
myheader: lv_header,
mydetail: lv_detail
},
cache: false,
success: function (data) {
alert("Success!..");
},
error: function (xhr, ajaxOptions, thrownError) {
alert(thrownError);
}
})
}
これは私のアクションコードです。 PMAllotmentEntry
とPMAllotmentDetailEntry
はモデルです:
public ActionResult UpdateMachine(PMAllotmentEntry myheader, PMAllotmentDetailEntry mydetail)
{
return View();
}
は今、私の問題は、私は、コントローラにビューから値を取得することはできませんよ。 JSON.stringify
も試しましたが使用はありません。
私は単一のJSON値を渡すと動作しています。
私はすべての可能性を試しました。あなたも言ったようにしましたが、使用しませんでした。最後に私は次のことをしました。私は2つのJSON値を持っていますが、それでも問題に直面しています。なぜなら、JSONは最初のJSON値で最初のフィールド値を取得するためです。
function btnadHocSave() {
debugger
var lv_header = $("#Header").serialize(); // this is header <fieldset>
var lv_detail = $("#SubmitMachine").serialize();
$.ajax(
{
type: "GET",
url: '/PMAllotments/UpdateMachine',
contentType: "application/json",
dataType: "JSON",
data: lv_header + ',' + lv_detail,
success: function (data) {
alert("Success!..");
debugger
$("#adHocAdd40").modal("hide");
},
error: function (xhr, ajaxOptions, thrownError) {
alert(thrownError);
}
})
}
を次のように
マイモデル:JSON.stringify({myheader:lv_header、mydetail:lv_detail})、'しかし、なぜあなたが使用している 'そのserializeObject() '関数(' bool'プロパティがあるとすぐに失敗します)とそのようなデータを送信すると、ビューが正しく生成されないことが示されます。 –
これを行う最も良い方法は、Newクラスを作成し、それらの "PMAllotmentEntry myheader、PMAllotmentDetailEntry mydetail"クラスが1つのクラスに含まれています。 – Floxy
あなたの編集については、 'contentType'オプションとその' data:lv_header + '&' + lv_detail、 'を削除します(ただし、あなたのビューは正しく生成されていると仮定していますが、このコードはあなたが持っていないことを示唆しています) –