2011-01-07 12 views
0

Ich versuche, meinen Kopf um ein Modell zu wickeln, das mehrere Kontrollkästchenoptionen zulässt.ASP.NET MVC 2: mehrere Kontrollkästchen gegen ein Modell?

Zum Beispiel sagen, ich habe eine Gruppe namens "ValidTimes" ... Ich habe dann Kontrollkästchen für alle ValidTimes, die gespeichert werden sollen.

Gerade jetzt, mein Modell hat ein string ValidTimes { get; set; } aber ich bin nicht sicher, wie ich soll mehr als 1 Wert gegen mein Modell überprüfen ...

nicht gegen dieses Modell zu erwähnen Validieren, um sicherzustellen, dass Es ist mindestens ein Wert ausgewählt.

Sollte mein Modell aus allen möglichen Optionen innerhalb dieser Checkbox-Gruppe bestehen?

Antwort

0

Dies ist ein ziemlich umfangreiches Problem. Ich habe herausgefunden, wie man nicht nur den Status jedes Kontrollkästchens anzeigt, sondern auch den Status bei der Rückkehr zur Ansicht behält.

Optionsfelder waren tendenziell die größten Probleme, aber durch Verwendung einer Zeichenfolgeneigenschaft als Platzhalter für den Optionsfeldwert können Sie diesen Status ebenfalls beibehalten.

0

Direkt an der Spitze von meinem Kopf, ich denke, das sollte funktionieren:

ändern ValidTimes in ein String-Array. Verwenden Sie eine Schleife, um für jede mögliche Zeit ein Kontrollkästchen zu erstellen. Geben Sie dem Kontrollkästchen den Namen des Zeitraums (oder einen eindeutigen Wert, der einem bestimmten Zeitraum entsprechen kann) und verwenden Sie dann ein benutzerdefiniertes Modellbinder zum Lesen der Formularwerte Veröffentlichen Sie die HTTP-Post und fügen Sie dem Zeichenfolgenarray die Namen der aktivierten Kontrollkästchen hinzu.

Ich bin immer noch ein relativer MVC-Neuling, also kann es einen einfacheren Weg geben, aber so würde ich es angehen.

BEARBEITEN: Im folgenden Beitrag auf SO wird ein ähnlicher Ansatz wie oben vorgeschlagen, bietet aber auch Code-Beispiele. ASP.Net MVC - Handle Multiple Checkboxes