Wie kann ich die Liste oder Sammlung an den Controller aus der Ansicht in MVC 3 zurückgeben?

9

Jemand bitte helfen Sie mir, diese Liste aus meiner Sicht richtig zurückzugeben. Ich sehe nicht, warum ich Null zurückgebe für meine fieldModelList versuche ich an den Controller zu übergeben ...

Hier ist meine Ansicht:

%Vor%

und hier ist mein Controller:

%Vor%

Ich treffe die HttpPost-Methode, aber wenn ich einen Haltepunkt direkt darin platziere, gebe ich gleich null für die fieldModelList zurück, was ich hoffte, wäre eine Liste der Werte, die ich in die Texboxen in der Ansicht eingegeben habe das ist das Modell FieldModel ...

Ich denke, etwas stimmt nicht mit meiner Logik im Vergleich zu meiner Syntax oder genauso gut wie mit meiner Syntax, aber im Grunde möchte ich eine Liste vom Typ FieldModel mit jedem entsprechenden PropertyName und PropertyValue an den Controller zurückgeben. Ich habe festgestellt, dass ich in der BeginForm-Anweisung in der Ansicht keinen ID-Parameter übergebe. Brauche ich einen hier?

Nur für den Fall, hier ist meine Modellklasse für FieldModel:

%Vor%     
ob1Jakobi 09.02.2012, 20:53
quelle

1 Antwort

5

Phil Haack schrieb vor einiger Zeit einen Artikel , der erklärt wie man Sammlungen ( ICollection ) bindet, um Modelle anzuzeigen. Es geht um zusätzliche Details über das Erstellen einer Editor-Vorlage, die Sie sicherlich auch tun könnten.

Grundsätzlich müssen Sie den Namensattributen der HTML-Elemente einen Index voranstellen.

%Vor%

Dann könnte Ihr Controller die Sammlung von FieldModel

binden %Vor%

Ich bin nicht 100% sicher, dass das Folgende die Attribute korrekt benennen würde (ich würde die Verwendung der Editor-Vorlage empfehlen), aber Sie könnten einfach das htmlAttributes -Argument verwenden und ihm einen Namen mit dem Index geben.

%Vor%

Editor Vorlage

Wenn Sie so weit gehen wollten, eine Editor-Vorlage hinzuzufügen, fügen Sie eine Teilansicht mit dem Namen FieldModel.ascx zu /Views/Shared hinzu, die stark in FieldModel

eingetippt ist %Vor%

Und dann würde der Teil Ihrer Ansicht, der für das Rendern der Sammlung verantwortlich ist, wie folgt aussehen:

%Vor%     
David Fox 09.02.2012, 21:14
quelle