Я следую this примеру использование jQuery UI Datepicker in my MVC project.
с помощью JQuery UI Datepicker в MVC бритве получает ошибку
Модель
[DataType(DataType.Date)]
public DateTime RequestDate { get; set; }
Razor
<div class="form-group">
@Html.LabelFor(model => model.RequestDate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.RequestDate)
@Html.ValidationMessageFor(model => model.RequestDate, "", new { @class = "text-danger" })
</div>
Тогда согласно учебнику создана Дате помощник и вставил эту строку
@Html.TextBox("", String.Format("{0:d}", (string)Model.ToShortDateString()), new { @class = "datefield", @type = "date" })
Когда я запускаю приложение, я получаю исключение во время выполнения для указанной выше строки. Модель равна нулю. Я не уверен, почему? и как это связано с моей моделью?
Дополнительная информация: Не удается выполнить привязку выполнения на нуль эталонным
DatePickerReady.js
if (!Modernizr.inputtypes.date) {
$(function() {
$(".datefield").datepicker();
});
}
Потому что 'Model' является' null', и вы не можете вызывать '.ToShortDateString()' on 'null' - просто удалите' (string) Model.ToShortDateString()) из 'TextBox()' methd. (и добавление '@type =" date "в view и' [DataType (DataType.Date)] 'бессмысленно, если вы используете jQuery datepicker). –
Но для этого вам не нужен 'EditorTemplate'. Просто замените '@ Html.EditorFor (model => model.RequestDate)' на '@ Html.TextBoxFor (m => m.RequestDate," {0: d} ", новый {@class =" datefield "})' –
И вы используете неправильную перегрузку 'TextBox()' anyway - третий параметр - это строка формата - [refer docs] (https://msdn.microsoft.com/en-us/library/system.web.mvc.html .inputextensions.textbox (v = vs.118) .aspx # М: System.Web.Mvc.Html.InputExtensions.TextBox% 28System.Web.Mvc.HtmlHelper, System.String, System.Object, System.String, система. Collections.Generic.IDictionary {System.String, System.Object}% 29) –