Я использую ASP.NET MVC3 с Razor View и пытаюсь использовать способ Скотта Аллена для замены DatePicker для типов DateTime.Итак, у меня есть простая модель, подобная этой:
public class Student
{
public long Id { get; set; }
[Required]
public string Name { get; set; }
[DataType(DataType.DateTime)]
public DateTime EnterYear { get; set; }
}
до любых изменений все представления работали корректно, но когда я добавляю некоторые коды для использования сборщика данных, у меня возникает проблема: редактирование представления работало правильно, но когда япопробуйте перейти к представлению создания, там есть ошибка:
The model item passed into the dictionary is null, but this dictionary requires a non-
null model item of type 'System.DateTime'.
Description: An unhandled exception occurred during the execution of the current web
request. Please review the stack trace for more information about the error and where
it originated in the code.
Exception Details: System.InvalidOperationException: The model item passed into the
dictionary is null, but this dictionary requires a non-null model item of type
'System.DateTime'.
Source Error:
Line 59: </div>
Line 60: <div class="editor-field">
Line 61: @Html.EditorFor(model => model.EnterYear)
Line 62: @Html.ValidationMessageFor(model => model.EnterYear)
Line 63: </div>
Source File: d:\Projects\MyProject\Views\Student\Create.cshtml Line: 61
есть мои изменения:
1 - Добавить папку EditorTemplates в общую папку в представлении.
2- Добавить частичное представление DateTime в указанную выше папку с помощью:
@model System.DateTime
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue
, new { data_datepicker = true })
3 - Добавить новый скрипт в представление _Layout:
/// <reference path="../Scripts/jquery-1.5.1-vsdoc.js" />
/// <reference path="../Scripts/jquery-ui-1.8.11.js" />
$(document).ready(function () {
$(":input[data-datepicker]").datepicker();
})
4 - И добавить необходимые ссылки на скрипты и CSS для _Layout:
<link href="@Url.Content("~/Content/themes/base/jquery.ui.all.css")" rel="stylesheet"
type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript">
</script>
в этих реализациях представление «Правка» корректно работало со сборщиком данных, но в представлении «корзина» была ошибка, что случилось с представлением «Создать»?в чем проблема?