@ Html.EditorFor () Rendert DropDownList anstelle von CheckBox

8

Ich bin neu von WebForms zu MVC 3 und habe ein Problem mit der Helfermethode @Html.EditorFor() .

Ich habe eine stark typisierte Ansicht, die Daten aus einer Datenbank darstellt, und eine der Methoden hat den Typ bool? . Ich möchte, dass dies als Kontrollkästchen angezeigt wird, aber stattdessen erscheint es als Dropdown-Liste mit den Optionen "Nicht festgelegt", "Wahr" und "Falsch".

Was ist der einfachste Weg, um dies zu einem regulären Kontrollkästchen zu machen?

Ich verstehe, dass ich den Datentyp in eine einfache alte bool ändern könnte, aber dies ist eine große EF-Entität, die ich benutze, und es scheint ein Schmerz zu sein, die gesamte Klasse nur dafür neu zu erstellen. Ich merke auch, dass ich die Fähigkeit verlieren werde, den Status "nicht gesetzt" zu verfolgen, aber ein einfaches Kontrollkästchen ist für mich wichtiger.

    
Jonathan Wood 12.12.2011, 15:56
quelle

2 Antworten

9

Verwenden Sie stattdessen die Checkbox-Hilfsmethode @ Html.CheckBoxFor ()

Es wird eine Drop-Down-Liste gerendert, da ein Kontrollkästchen den Wert "not set" nicht liefern kann.

    
Paul 12.12.2011, 16:01
quelle
6

Grundsätzlich hat ASP.NET MVC einige Standardvorlagen (Sie kann das hier lesen ).

Wenn Sie möchten, können Sie Ihr eigenes EditorTemplate hinzufügen und ASP.NET MVC wird es anstelle des Standard verwenden. Dazu sollten Sie eine Datei 'Boolean. {Your-view-engine-extension}' (zB: 'Boolean.aspx') entweder in ~ / Views / Controllername / EditorTemplates / oder ~ / Views / Shared / EditorTemplates / und überschreiben Sie es mit Ihrer eigenen Funktionalität.

Hier ist der Standard-Editor für Boolean, der von Ihnen erweitert werden kann:

%Vor%     
Alexander Yezutov 12.12.2011 16:14
quelle