Tengo dos plantillas de editor: una para decimal y otra para decimal? (Anulable)ASP.NET MVC 2 - Html.Editor ¿Para un tipo anulable?
Pero cuando tengo un decimal anulable en mi modelo, intenta cargar el editor decimal normales:
<%: Html.EditorFor(model => model.SomeDecimal)%>
<%: Html.EditorFor(model => model.SomeNullableDecimal)%>
El primero funciona bien, y carga el editor de plantillas decimal. El segundo también intenta cargar la plantilla decimal (y falla porque no es un campo decimal).
El mensaje de error es:
The model item passed into the dictionary is null, but this dictionary requires
a non-null model item of type 'System.Decimal'.
Mis plantillas se declaran así:
plantilla decimal:
<%@ Control Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<System.Decimal>" %>
anulable decimal plantilla:
<%@ Control Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<System.Decimal?>" %>
sé tha t Puedo hacerlo funcionar al pasar el nombre de la plantilla, por ejemplo,
Pero realmente preferiría que simplemente funcionara automáticamente al usar el tipo como todas las otras plantillas.
<%: Html.EditorFor(model => model.SomeNullableDecimal,
"NullableDecimalTemplate")%>
¿Los nombres de sus plantillas son Decimal.ascx y Decimal? .ascx? – ZippyV
No, son Decimal.ascx y NullableDecimal.ascx –
¿Nadie? ... Resulta que puedo "arreglarlo" copiando el código NullableDecimal.ascx dentro de Decimal.ascx. Por extraño que parezca, un decimal estándar se puede utilizar en la plantilla que admite nulos. No sé por qué un decimal no nulo funcionará en una plantilla que tiene código similar: if (myDecimal.HasValue) –