MVC jquery datepicker для создания пустых значений - PullRequest
1 голос
/ 30 июня 2011

Я проверял эту ссылку:

http://blogs.msdn.com/b/stuartleeks/archive/2011/01/25/asp-net-mvc-3-integrating-with-the-jquery-ui-date-picker-and-adding-a-jquery-validate-date-range-validator.aspx

, который описывает создание средства выбора даты jquery для MVC для выбора даты в редактировании.

Конечно, учебник работает нормально, но работает только для правок, а не создает.

Имеет модель:

public class Foo
    {
        public string Name { get; set; }
        [DataType(DataType.Date)]
        public DateTime Date { get; set; }
    }

Я изменил его редактирование, чтобы создать, например:

@model DatePickerTemp.Models.FooEditModel @{
    ViewBag.Title = "Create";
    Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>
    Create</h2> 
@Model.Message
@using (Html.BeginForm())
{ 
    @Html.EditorFor(m => m.Foo)
    <input id="submit" name="submit" type="submit" value="Save" />
}

}

Другой код использует некоторый jquery:

$(document).ready(function () {
    $('.date').datepicker({dateFormat: "dd/mm/yy"});
});

для всего с классом .date:

Есть еще один фрагмент кода:

@model DateTime
@Html.TextBox("", Model.ToString("dd/MM/yyyy"), new { @class = "date" })

, который устанавливает класс для объектов типа:

[DataType(DataType.Date)]

для создания jquery datepicker.

Проблема в том, что этот тип не имеет значения NULL, поэтому при запуске команды create вы получаете:

The model item passed into the dictionary is null, but this dictionary requires a non-null model item of type 'System.DateTime'.

Кто-нибудь знает, как изменить код, чтобы сделать создание работающим?

1 Ответ

2 голосов
/ 30 июня 2011

Что-то вроде:

 @model DateTime?
    @Html.TextBox("", Model.HasValue && Model.Value != DateTime.MinValue ? Model.Value.ToString("dd MMM yyyy") : string.Empty, new { @class = "datePicker" })
...