views:

205

answers:

0

I have two editor templates: one for decimal, and one for decimal? (nullable)

But when I have a nullable decimal in my model, it tries to load the normal decimal editor:

<%: Html.EditorFor(model => model.SomeDecimal )%>
<%: Html.EditorFor(model => model.SomeNullableDecimal )%>

The first one works fine, and loads the decimal editor template. The second one also tries to load the decimal template (and fails because it is not a decimal field).

The error message is:

The model item passed into the dictionary is null, but this dictionary requires a non-null model item of type 'System.Decimal'. 

My templates are declared like this:

Decimal template:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.Decimal>" %>

Nullable Decimal template:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.Decimal?>" %>

I know that I can make it work by passing in the template name, eg

But I would really prefer it to just work automatically by using the type just like all the other templates.

<%: Html.EditorFor(model => model.SomeNullableDecimal, "NullableDecimalTemplate" )%>