Heim > Backend-Entwicklung > C++ > Warum kann mein MVC-Formular keine Objektliste veröffentlichen?

Warum kann mein MVC-Formular keine Objektliste veröffentlichen?

Mary-Kate Olsen
Freigeben: 2025-01-21 14:33:09
Original
327 Leute haben es durchsucht

Why is my MVC form failing to post a list of objects?

MVC-Formular: Übermittlung der Objektliste fehlgeschlagen

Problembeschreibung

In einer MVC-Anwendung übermittelt ein Formular, das eine Liste von Objekten enthält, die Liste nicht korrekt an den Controller. Nach dem Absenden des Formulars ist die Liste der vom Controller empfangenen Objekte leer.

Lösung

Das Problem ist auf den fehlenden Index des Listenelements im Formularelement zurückzuführen. Der Modellordner benötigt Indizes, um Elemente in der Liste zu unterscheiden.

Implementierungsdetails

Um dieses Problem zu lösen, verwenden Sie Vorlagen anstelle von Teilansichten.

1. Editor-Vorlage erstellen

Erstellen Sie im Ordner „EditorTemplates“ unter dem Ansichtsordner eine Editorvorlage mit dem Namen „PlanCompareViewModel.cshtml“. Fügen Sie den folgenden Code in Ihre Vorlage ein:

<code>@model PlanCompareViewModel
<div>
    @Html.HiddenFor(p => p.PlanID)
    @Html.HiddenFor(p => p.CurrentPlan)
    @Html.CheckBoxFor(p => p.ShouldCompare)
</div></code>
Nach dem Login kopieren

2. Ändern Sie die übergeordnete Ansicht

Aktualisieren Sie die übergeordnete Ansicht wie folgt:

<code>@model IEnumerable<plancompareviewmodel>
@using (Html.BeginForm("ComparePlans", "Plans", FormMethod.Post, new { id = "compareForm" }))
{
    <div>
        @Html.EditorForModel()
    </div>
}</code>
Nach dem Login kopieren

DisplayTemplates und EditorTemplates übernehmen automatisch die Indizierung für Sammlungen und stellen so sicher, dass der Modellbinder die richtige Liste von Objekten erstellt.

Das obige ist der detaillierte Inhalt vonWarum kann mein MVC-Formular keine Objektliste veröffentlichen?. 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