Das ist mein Skript:Wie zwei JSON-Werte aus dem Blickfeld schicken EF mit dem Controller
$.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);
}
})
}
Das ist mein Aktionscode. PMAllotmentEntry
und PMAllotmentDetailEntry
sind Modelle:
public ActionResult UpdateMachine(PMAllotmentEntry myheader, PMAllotmentDetailEntry mydetail)
{
return View();
}
Jetzt ist mein Problem, das ich bin nicht in der Lage, die Werte aus dem Blickfeld Controller erhalten. Ich versuchte JSON.stringify
auch, aber es gibt keine Verwendung.
Es funktioniert, wenn ich einzelne JSON-Wert übergeben.
Ich habe alle Möglichkeiten ausprobiert. Hab wie du sagt aber auch keinen Gebrauch gemacht. Endlich habe ich folgendes getan. Ich habe zwei JSON-Werte, aber immer noch Probleme, weil JSON den ersten Feldwert, der mit den ersten JSON-Werten kommt, als zweiten Wert angibt.
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);
}
})
}
Für einen Start Sie verwenden müssen 'Daten: JSON.stringify ({myHeader: lv_header, mydetail: lv_detail}),' aber warum sind Sie, dass ' serializeObject() '-Funktion (was fehlschlägt, sobald Sie eine' bool'-Eigenschaft haben) und die Tatsache, dass Sie die Daten so senden, schlägt vor, dass Sie Ihre Sicht nicht richtig generieren –
Der beste Weg, dies zu tun ist eine neue Klasse zu erstellen und zu setzen diese "PMAllotmentEntry myheader, PMAlotmentDetailEntry mydetail" Klassen in einer Klasse. – Floxy
In Bezug auf Sie bearbeiten - entfernen Sie die 'contentType' -Option und ihre' data: lv_header + '&' + lv_detail, '(aber das geht davon aus, dass Ihre Ansicht korrekt generiert - aber Sie haben nichts davon gezeigt - und die Tatsache, Ihre schreiben dieser Code deutet darauf hin, dass Sie nicht) –