2つのエディターテンプレートがあります。1つは10進数用で、もう1つは10進数用ですか。(null許容)
しかし、モデルにnull許容の小数がある場合、通常の小数エディターをロードしようとします。
<%: Html.EditorFor(model => model.SomeDecimal )%>
<%: Html.EditorFor(model => model.SomeNullableDecimal )%>
最初のものは正常に動作し、10進エディターテンプレートをロードします。2つ目も、10進数のテンプレートを読み込もうとします(10進数のフィールドではないため失敗します)。
エラーメッセージは次のとおりです。
The model item passed into the dictionary is null, but this dictionary requires
a non-null model item of type 'System.Decimal'.
私のテンプレートは次のように宣言されています:
10進数テンプレート:
<%@ Control Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<System.Decimal>" %>
Nullable Decimalテンプレート:
<%@ Control Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<System.Decimal?>" %>
テンプレート名を渡すことで機能させることができることを知っています。
しかし、他のすべてのテンプレートと同じように、タイプを使用して自動的に機能することを本当に望んでいます。
<%: Html.EditorFor(model => model.SomeNullableDecimal,
"NullableDecimalTemplate" )%>