Ich habe die folgende DropDownList in einer ASP.NET MVC-cshtml-Seite:
%Vor% Die Eigenschaft ist definiert als public virtual Nullable<int> GroupId
Obwohl GroupId
ist Nullable
das Menü select
akzeptiert keine leere Option. Wenn ich versuche, das Modell zu speichern, ohne eine Gruppe auszuwählen, erhalte ich die folgende Fehlermeldung:
Das Feld
GroupId
muss eine Zahl sein.
Das Auswahlmenü wird wie folgt gerendert:
%Vor% Und nein, GroupId
ist nicht mit dem Attribut [Required]
versehen.
Wie kann ich es so machen, dass die Seite einen leeren Wert für GroupId
akzeptiert?
P.S. Der GroupId
-Typ ( Nullable<int>
) wird vom Code generiert. Ich benutze das Datenbank-First-Schema. Ich weiß nicht, aber was ist der Unterschied zwischen <Nullable>int
und int
?
AKTUALISIEREN :
Auch wenn null als Wert für das leere Auswahlelement vorhanden ist, wird die nicht-obstruktive (JavaScript) Validierung nicht bestanden. Wird jedoch ein Wert von -1
übergeben, werden sowohl die clientseitige als auch die serverseitige Validierung übergeben. Jetzt verwende ich diesen Wert und im Controller setze ich GroupId
auf null
wenn es gleich -1
ist.
Ich kann nicht glauben, dass es keine einfachere Lösung für solch ein einfaches Problem gibt. Ist das ein Fehler in ASP.NET MVC 3?
Klasse für Modellbindung erstellen
%Vor%%Vor%Controller erstellen
%Vor%Index.cshtml
Tags und Links asp.net-mvc-3 c# validation nullable drop-down-menu