0

Ich habe eine grundlegende Frage über ASP.NET MVC Dropdown-Liste. Ich habe folgende DropdownlistASP.NET MVC DropDownList Einstellung Standard, wenn nichts ausgewählt

Farbe wählen - -> Option 1 Wert: "- 1"

Rot -> Option 2 Wert: "Red"

Green -> Option 3 Wert: "Green"

Blue -> Option 4 Wert: "Blue"

Meine Ansicht Modell ist wie folgt:

public class ViewModel 
{  
    public List<SelectListItem> ColorList {get; set;} 

    public string Color {get; set;} 

} 

Wenn nichts vorausgewählt wurde, füge ich beim Laden der Dropdown-Liste einen Wert von "-1" hinzu und füge Text "- Farbe auswählen -" hinzu und setze es als ausgewählte Option. Dazu muss ich eine benutzerdefinierte Validierung schreiben, wenn die Dropdown-Liste nach "-1" suchen muss oder wenn es nicht erforderlich ist und ich null in der Datenbank speichern muss, muss ich vor dem Speichern die "-1" entfernen. Das scheint mir ein Problem zu sein.

Ich frage mich, ob es eine Standardmethode gibt, um Werte in einem Dropdown-Menü festzulegen, wenn nichts ausgewählt ist, und eine Standardmethode, um diese zu validieren?

+0

* „Ich frage mich, ob es eine Standardmethode ist sie, um Werte auf einem Drop-Down, wenn nichts ausgewählt ist und eine Standardmethode zur Validierung?“ * ~ Ja, ändern Sie den '-1' Wert in eine leere Zeichenkette .. So funktioniert das Plugin standardmäßig mit 'select'. Wenn Sie bei "-1" stecken bleiben, müssen Sie Ihre eigene benutzerdefinierte Regel schreiben. – Sparky

+0

Siehe diese Antwort: http://stackoverflow.com/a/6218499/594235 – Sparky

+1

@Sparky - das ist ein MVC Problem, nicht unbedingt ein jquery.validation Problem, wie MVC das Standardverhalten von jquery.validation außer Kraft setzt. Obwohl das Framework eine leere Zeichenfolge einfügt, wenn der ausgewählte Wert null ist, –

Antwort

3

Die Antwort ist eigentlich sehr einfach und ist in MVC und die unauffällige Validierung von Microsoft integriert.

Wenn der ausgewählte Wert Null ist, wird der Wert des Feldes "Option" als Standard angezeigt. Mit anderen Worten, tun Sie etwas wie folgt aus:

Html.DropDownListFor(x => x.Color, Model.ColorList, "Select Color...") 

Also, wenn Model.Color null ist (stellen Sie sicher, es ist ein Nullable-Wert), wird es zeigen „Farbe wählen ...“ oder was auch immer Sie wollen dort setzen.

Wenn über die Bestätigung [Erforderlich] verfügt, wird sichergestellt, dass Sie einen Wert auswählen, bevor das Modell validiert wird.

In der Tat kämpfen Sie das Framework, indem Sie versuchen, dies manuell zu tun.

+0

Hört sich gut an. Scheint die Antwort zu sein, nach der ich gesucht habe. Vielen Dank! – user1527762

+0

Das funktioniert gut, wenn nichts ausgewählt wurde. Wenn Sie jedoch etwas ausgewählt haben, das bereits ausgewählt wurde, wird die Option "Farbe auswählen" nicht im Dropdown-Menü angezeigt. Irgendwelche Ideen? – user1527762

+0

@ user1527762 - warum in aller Welt willst du es? –

Verwandte Themen