Моим намерением было применить JQuery UI Datepicker ко всему сайту, создав шаблон EditorTemplate согласно этому посту Шаблоны ASP.NET MVC 2
@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 пустое поле DateTime, и переход к странице приводит к этой ошибке:
Элемент модели, переданный в словарь, имеет значение null, но для этого словаря требуется ненулевой элемент модели типа 'System.DateTime'.
На самом деле, даже создания пустого партиала с именем «DateTime» в пути Views / Shared / EditorTemplates достаточно для генерации ошибки, предполагая, что даже если шаблон был переписан, он все равно может не обрабатывать нулевое значение. Код в представлении индекса (сгенерированный с помощью MvcScaffolding с помощью EF Code-First) одинаков как для полей типа DateTime, так и для значений NULL:
<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>
Так можно ли изменить шаблон для обработки обнуляемого DateTime?