我有两个编辑器模板:一个用于十进制,一个用于十进制?(可以为空)
但是当我的模型中有一个可以为空的小数时,它会尝试加载普通的十进制编辑器:
<%: Html.EditorFor(model => model.SomeDecimal )%>
<%: Html.EditorFor(model => model.SomeNullableDecimal )%>
第一个工作正常,并加载十进制编辑器模板。第二个也尝试加载十进制模板(由于它不是十进制字段而失败)。
错误信息是:
The model item passed into the dictionary is null, but this dictionary requires
a non-null model item of type 'System.Decimal'.
我的模板声明如下:
十进制模板:
<%@ Control Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<System.Decimal>" %>
可空十进制模板:
<%@ Control Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<System.Decimal?>" %>
我知道我可以通过传入模板名称来使其工作,例如
但我真的希望它像所有其他模板一样使用类型自动工作。
<%: Html.EditorFor(model => model.SomeNullableDecimal,
"NullableDecimalTemplate" )%>