2010-03-22 15 views

Respuesta

16

Exclusivo no puede ser anulable, no tiene sentido para ViewEngine al evaluar la expresión. Tiene que marcar o no marcar la casilla de verificación y también responder con un valor de true o false. Su modelo necesita tener un valor bool, pero eso no significa que su base de datos deba saberlo. Solo tiene que hacer una traducción en algún lugar entre la base de datos y el modelo, por ej. Model.Exclusive = DAO.Exclusive ?? false.

Sin saber lo que null representa en su esquema de datos o cómo genera sus objetos modelo, es difícil darle muchos más detalles que eso.

Editar: No he probado esto, pero es posible salirse con algo tan simple como

public bool NoNullExclusive 
{ 
    get { return Exclusive ?? false; } 
    set { Exclusive = value; } 
} 

y la sustitución de

<%= Html.CheckBoxFor(model => model.Product.Exclusive) %> 

con

<%= Html.CheckBoxFor(model => model.Product.NoNullExclusive) %> 
+0

creé la propiedad que sugiere en una clase parcial. ¿Este sería el mejor lugar para hacer esta manipulación? – Picflight

+0

Si su clase de Producto se genera automáticamente, entonces sí. De lo contrario, en la propia clase o en la asignación del objeto de acceso a datos al modelo. – pdr

Cuestiones relacionadas