Wie wird ein DropDownListFor, der an eine Nullabintaint-Eigenschaft gebunden ist, einen leeren Wert akzeptieren?

9

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?

    
Jean-François Beauchamp 04.03.2014, 21:23
quelle

1 Antwort

0

Klasse für Modellbindung erstellen

%Vor%
  

Controller erstellen

%Vor%
  

Index.cshtml

%Vor%     
Haresh Kyada 25.04.2016 06:27
quelle