Heim > Web-Frontend > js-Tutorial > Wie übergebe ich einen komplexen Modellsatz über FormData an einen MVC-Controller?

Wie übergebe ich einen komplexen Modellsatz über FormData an einen MVC-Controller?

Mary-Kate Olsen
Freigeben: 2025-01-01 01:00:09
Original
325 Leute haben es durchsucht

How to Pass a Complex Model Set via FormData to an MVC Controller?

Modellsatz in FormData konvertieren und in MVC abrufen

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.

JavaScript-Serialisierung

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));
Nach dem Login kopieren

Dies schließt automatisch alle an Formularsteuerelemente gebundenen Modelleigenschaften ein, einschließlich Dateieingaben.

Daten veröffentlichen an Controller

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,         
});
Nach dem Login kopieren

Indem Sie „processData“ und „contentType“ auf „false“ setzen, Mit jQuery können die Formdaten unverändert gesendet werden.

Controller-Bindung

In Ihrem Controller können Sie eine stark typisierte Methode definieren, die an den Modellsatz bindet:

[HttpPost]
public ActionResult YourActionName(YourModelType model)
{
}
Nach dem Login kopieren

Das Modellbindungssystem von MVC füllt das Modell automatisch aus den Formdaten basierend auf seinen Eigenschaftsnamen.

FormData Erweiterung

Wenn Sie zusätzliche Nicht-Modell-Eigenschaften in die Formdaten einschließen müssen, verwenden Sie einfach:

formdata.append('someProperty', 'SomeValue');
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage