Das Weiterleiten eines komplexen Modellsatzes durch Formdata kann eine Herausforderung sein, aber die Verwendung einer Kombination aus jQuery-Serialisierung und MVC-Controller Bindung ist es möglich, dies effektiv zu erreichen.
Um die zu konvertieren Wenn Sie das in FormData festgelegte Modell verwenden, können Sie das FormData-Objekt von jQuery zusammen mit der Formularserialisierung verwenden. Wenn das Modell innerhalb von Formular-Tags an die Ansicht gebunden ist, serialisieren Sie es mit:
var formdata = new FormData($('form').get(0));
Dies schließt automatisch alle an Formularsteuerelemente gebundenen Modelleigenschaften ein, einschließlich Dateieingaben.
Senden Sie die Formulardaten mithilfe einer AJAX-Anfrage an den Controller:
$.ajax({ url: '@Url.Action("YourActionName", "YourControllerName")', type: 'POST', data: formdata, processData: false, contentType: false, });
Indem Sie „processData“ und „contentType“ auf „false“ setzen, Mit jQuery können die Formdaten unverändert gesendet werden.
In Ihrem Controller können Sie eine stark typisierte Methode definieren, die an den Modellsatz bindet:
[HttpPost] public ActionResult YourActionName(YourModelType model) { }
Das Modellbindungssystem von MVC füllt das Modell automatisch aus den Formdaten basierend auf seinen Eigenschaftsnamen.
Wenn Sie zusätzliche Nicht-Modell-Eigenschaften in die Formdaten einschließen müssen, verwenden Sie einfach:
formdata.append('someProperty', 'SomeValue');
Dadurch können Sie die Formdaten mit benutzerdefinierten Werten erweitern, auf die im Controller zugegriffen werden kann .
Das obige ist der detaillierte Inhalt vonWie übergebe ich einen komplexen Modellsatz über FormData an einen MVC-Controller?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!