Mit Hilfe eine dynamische Liste von Kontrollkästchen in einer Ansicht, wie das Modell erstellen

StackOverflow https://stackoverflow.com/questions/2022267

  •  19-09-2019
  •  | 
  •  

Frage

Ich habe eine ASP-MVC 2 App lication wo ich eine Liste von Kontrollkästchen angezeigt werden soll, dass ein Benutzer, basierend auf einer Liste von Datensätzen in einer Datenbank auswählen können. Zur Anzeige der Liste meines Modell eines List-Objekt enthält und die Aussicht hat eine foreach und gibt Html.CheckBox für jedes Element in der Liste.

Gibt es eine Möglichkeit, das Modell mit den ausgewählten Kontrollkästchen bevölkerte zu bekommen gegeben, dass das Modell haben kann, weil keine spezifische Eigenschaften für jedes Kontrollkästchen, die Liste dynamisch ist? Oder muss ich manuell die Formen Variablen selbst durchlaufen?

Edit: Extra Details wie pro sabanito Kommentar So in einem einfachen Ansicht / Modellszenario, wenn mein Modell eine Eigenschaft hat Property1 genannt, dann meiner Meinung nach einer Textbox für Property1 ausgegeben wird, wenn das Formular über eine Schaltfläche einreichen geschrieben wird, wird der MVC-Framework automatisch ein Modell füllen mit Property1 mit dem Text das wurde in das Textfeld eingegeben und das Modell an die Controller Aktion übergeben.

Weil ich mit einer dynamischen Liste von Optionen zu tun habe könnte der Benutzer überprüft, kann ich nicht explizit boolean Eigenschaften in meinem Modell schreiben und ausdrücklich die Kontrollkästchen in meiner Ansicht erstellen. Angesichts der Tatsache, dass meine Liste dynamisch ist, fragt ich mich, ob es Möglichkeiten gibt, mein Modell und Ansicht zu erstellen, so dass der MVC-Framework der Lage ist, das Modell richtig zu füllen, wenn das Formular gebucht wird.

War es hilfreich?

Lösung

Hier ist, was ich tun würde:

Haben Sie Probleme erzeugen, die Checkbox des dynamisch?

Wenn nicht, eine Eigenschaft auf Ihrem Ansichtsmodell erstellen, das eines ist:

public List<string> CheckboxResults { get; set; }

Wenn Sie Ihre Kontrollkästchen ist in der Ansicht sicherstellen, dass sie alle den name = „CheckboxResults“ erzeugen. Wenn MVC sieht Ihr Ansichtsmodell als Parameter über die Methode Aktion automatisch binden und setzen all „CheckboxResults“ Ergebnisse in der Liste (wie auch Ihre anderes Ansichtsmodell Eigenschaften). Jetzt haben Sie eine dynamische Liste basierend auf welche Checkbox Ihres Benutzer überprüft, dass Sie Ihren DomainModel oder wo auch immer senden.

Pretty cool stuff. Lassen Sie uns wissen, wenn Sie Probleme erzeugen, dynamisch ist das Kontrollkästchen, das ist irgendwie ein separates Problem als Modell, um eine Liste zu binden.

Andere Tipps

Verwenden Sie ein Ansichtsmodell, das Ihre Ansicht nach genau reflektiert, und ordnen Sie Ihr Domain-Modell (e) auf das Ansichtsmodell.

Zunächst scheint es oft entsprechende Domäne Modelle direkt in der Ansicht zu verwenden, keinen besseren Grund, als dass sie einfach zu bedienen. Da jedoch die Ansicht komplexere im Laufe der Zeit bekommt, Sie am Ende eine TON von bedingter Logik in Ihrer Ansicht nach setzen und mit Spaghetti enden. Um dies zu mildern, schaffen wir in der Regel ein Ansichtsmodell, das 1 korreliert: 1 mit der Ansicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top