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
Mary-Kate OlsenOriginal
2025-01-01 01:00:09381Durchsuche

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));

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,         
});

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)
{
}

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');

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!

Stellungnahme:
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