Обнуляемый DateTime, EditorTemplates, JQ UI DatePicker - PullRequest
1 голос
/ 20 сентября 2011

Моим намерением было применить 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?

Ответы [ 2 ]

3 голосов
/ 20 сентября 2011

Вы указали модель DateTime, которая является типом значения и не может иметь значение null.Это то, что сообщение об ошибке говорит вам.Попробуйте изменить свою модель, чтобы она могла иметь значение DateTime.

@model DateTime?

@{...}

Это должно исправить это.

1 голос
/ 06 октября 2011

Фил прав (нулевая модель) У меня есть полное руководство по этому вопросу http://www.asp.net/mvc/tutorials/using-the-html5-and-jquery-ui-datepicker-popup-calendar-with-aspnet-mvc-part-1

...