Heim >Web-Frontend >js-Tutorial >Wie übergebe ich ganze Modellobjekte über Formulardaten in MVC?

Wie übergebe ich ganze Modellobjekte über Formulardaten in MVC?

Barbara Streisand
Barbara StreisandOriginal
2024-12-20 03:54:10735Durchsuche

How to Pass Entire Model Objects via Form Data in MVC?

Erhalten ganzer Modellobjekte aus Formulardaten in MVC

Beim Übertragen ganzer Modellobjekte durch Formulardaten ist es wichtig, deren korrekte Rückkonvertierung sicherzustellen an den Modelltyp im Controller angepasst. So erreichen Sie dies:

JavaScript-Implementierung:

Verwenden Sie FormData, um das gesamte Modell zu serialisieren, anstatt einzelne Eigenschaften manuell anzuhängen:

var formdata = new FormData($('form').get(0));

Dies umfasst auch alle im Formular vorhandenen Dateieingaben.

Ajax Anfrage:

Veröffentlichen Sie die Formulardaten mit Ajax und deaktivieren Sie die automatische Verarbeitung und die Einstellung des Inhaltstyps:

$.ajax({
  url: '@Url.Action("YourActionName", "YourControllerName")',
  type: 'POST',
  data: formdata,
  processData: false,
  contentType: false,         
});

Controller-Aktion:

Definieren Sie im Controller eine Aktion, die das Modell als Parameter akzeptiert:

[HttpPost]
public ActionResult YourActionName(YourModelType model)
{
    // Perform operations on the model...
}

Alternativ, wenn die Modell eine Dateieingabe enthält, sollte der zweite Parameter HttpPostedFileBase für die Dateieigenschaft sein:

[HttpPost]
public ActionResult YourActionName(YourModelType model, HttpPostedFileBase myImage)
{
    // Handle file and perform operations on the model...
}

Zusätzlicher Datenanhang:

Bei Bedarf können zusätzliche Eigenschaften angehängt werden zu den Formulardaten hinzufügen mit:

formdata.append('someProperty', 'SomeValue');

Das obige ist der detaillierte Inhalt vonWie übergebe ich ganze Modellobjekte über Formulardaten in MVC?. 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