Exclusive kann nicht Nullable sein, es ergibt keinen Sinn für die ViewEngine, wenn der Ausdruck ausgewertet wird. Es muss entweder das Kontrollkästchen aktivieren oder nicht und auch mit einem true
oder false
Wert antworten. Ihr Modell muss einen bool
Wert haben, aber das bedeutet nicht, dass Ihre Datenbank das wissen muss. Sie müssen nur irgendwo zwischen der Datenbank und dem Modell eine Übersetzung machen, z. Model.Exclusive = DAO.Exclusive ?? false
.
Ohne zu wissen, was NULL in Ihrem Datenschema darstellt oder wie Sie Ihre Modellobjekte generieren, ist es schwierig, Ihnen mehr Details zu geben.
Edit: habe nicht getestet, aber Sie könnten mit etwas so einfachen wie
public bool NoNullExclusive
{
get { return Exclusive ?? false; }
set { Exclusive = value; }
}
und ersetzt
<%= Html.CheckBoxFor(model => model.Product.Exclusive) %>
mit
<%= Html.CheckBoxFor(model => model.Product.NoNullExclusive) %>
Ich habe die Eigenschaft, die Sie vorgeschlagen wegkommen in einer Teilklasse. Wäre dies der beste Ort, um diese Manipulation zu machen? – Picflight
Wenn Ihre Produktklasse automatisch generiert wird, dann ja. Wenn nicht, dann entweder in der Klasse selbst oder im Mapping vom Datenzugriffsobjekt zum Modell. – pdr