私の意図は、この投稿ASP.NET MVC 2 テンプレートに従って EditorTemplate を作成することにより、JQuery UI Datepicker をサイト全体に適用することでした。
@model DateTime
@{
string name = ViewData.TemplateInfo.HtmlFieldPrefix;
string id = name.Replace(".", "-");
<div class="editor-label">
@Html.LabelFor(model => model)
</div>
<div class="editor-field, datepicker">
@Html.EditorFor(model => model)
@Html.ValidationMessageFor(model => model)
</div>
}
関連するコードは説明どおりに完全に機能します。ただし、いくつかの DateTime フィールドに加えて、モデルには 1 つの null 許容 DateTime フィールドも含まれており、ページに移動すると次のエラーが発生します。
ディクショナリに渡されたモデル アイテムは null ですが、このディクショナリには 'System.DateTime' 型の null 以外のモデル アイテムが必要です。
実際、パス Views/Shared/EditorTemplates に「DateTime」という名前の空のパーシャルを作成するだけでもエラーが生成され、テンプレートが書き直されたとしても null 値を処理できない可能性があることが示唆されます。インデックス ビューのコード (EF Code-First を介して MvcScaffolding によって生成される) は、null 許容および null 非許容の DateTime フィールドの両方で同じです。
<div class="editor-label">
@Html.LabelFor(model => model.ItemInstance.iArrivalDate)
</div>
<div class="editor-field,datepicker">
@Html.EditorFor(model => model.ItemInstance.iArrivalDate)
@Html.ValidationMessageFor(model => model.ItemInstance.iArrivalDate)
</div>
では、null 許容の DateTime を処理するようにテンプレートを変更することは可能ですか?