MVC - Bearbeiten einer Liste von Objekten

Ich habe das folgende Klassenlayout in MVC:

public class ReportModel 
{
    List<SomeItem> items;
    string value;
    string anotherValue;
}

Jetzt erstelle ich in MVC eine stark typisierte Ansicht dieses Typs und erstelle bearbeitbare Textfelder, um jeden Wert zu bearbeiten. Außerdem benutze ich eine foreach-Schleife, um Textfelder zum Bearbeiten der Elemente in der Liste von Elementen aufzufüllen.

Wenn ich an die httppost-Methode übergebe, werden die einzelnen Werte im reportmodel-Objekt gut wiedergegeben, aber die Liste wird im Objekt nicht zurückgegeben. Wie soll das gemacht werden?

Wenn ich httppost sage, beziehe ich mich auf die Methode, auf die MVC zurücksendet

[HttpPost]
public ActionResult EditReport(ReportModel report)
{
    // Save the report in here after the update on the UI side
}

Code zum Posten der Liste von Elementen anzeigen

if (Model.items != null && Model.items.Count > 0)
{
    for (int i = 0; i < Model.items.Count; i++)
    {                
        <div class="editrow">
            <div class="edititem">
                <div class="editor-label">
                    @Html.LabelFor(m => m.items.ElementAt(i).propertyOne)
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(m => m.items.ElementAt(i).propertyOne)
                    @Html.ValidationMessageFor(m => m.items.ElementAt(i).propertyOne)
                </div>
            </div>
            <div class="edititem">
                <div class="editor-label">
                    @Html.LabelFor(m => m.items.ElementAt(i).propertyTwo)
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(m => m.items.ElementAt(i).propertyTwo)
                    @Html.ValidationMessageFor(m => m.items.ElementAt(i).propertyTwo)
                </div>
            </div>
            <div class="edititem">
                <div class="editor-label">
                    @Html.LabelFor(m => m.items.ElementAt(i).propertyThree)
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(m => m.items.ElementAt(i).propertyThree)
                    @Html.ValidationMessageFor(m => m.items.ElementAt(i).propertyThree)
                </div>
            </div>
        </div>
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage