Редактор ASP.NET MVC для DateTime

Как реализовать EditorFor DateTime?

У меня уже есть редакторы для Даты и Времени отдельно. Могу ли я использовать его для моего редактора DateTime?

Есть предложения, как это сделать?

Редактор даты:

@model DateTime

@Html.TextBox(string.Empty, (Model != default(DateTime) ? Model.ToShortDateString() : string.Empty), new { @class = "date form-control" })

Редактор времени:

@model DateTime?

@Html.TextBox(string.Empty, (Model.HasValue ? Model.Value.ToString("HH:mm") : string.Empty), new { @class = "time form-control" })

Я использую средство выбора даты jQuery UI для редактора даты. Timepicker также является плагином jQuery.


person Andrei    schedule 04.02.2014    source источник
comment
Нельзя ли их просто совместить? Например @Html.EditorFor(Model.TheDate) - @Html.EditorFor(Model.TheTime). Вам нужны разные форматы?   -  person Andrei V    schedule 04.02.2014
comment
@AndreiV это сгенерирует два входа ... я бы сказал, что это не очень удобно для привязки модели.   -  person Raphaël Althaus    schedule 04.02.2014
comment
Не могли бы вы показать код ваших редакторов даты и времени? Может быть, вы можете сделать рефакторинг или использовать собственный HtmlHelper вместо шаблонов...   -  person Raphaël Althaus    schedule 04.02.2014
comment
@RaphaëlAlthaus, тогда добавь скрытый?   -  person Andrei V    schedule 04.02.2014
comment
@AndreiV Да, все возможно, но тогда вам понадобится javascript для заполнения этого скрытого поля. Это не совсем чистое повторное использование существующих...   -  person Raphaël Althaus    schedule 04.02.2014
comment
@RaphaëlAlthaus, согласен. Это зависит от того, чем вы готовы пожертвовать.   -  person Andrei V    schedule 04.02.2014


Ответы (2)


Создайте DateTime.cshtml в Views/Shared/EditorTemplates, который содержит:

@inherits System.Web.Mvc.WebViewPage<System.DateTime?>
@Html.TextBox("", string.Format("{0:yyyy-MM-dd HH:mm}", 
              Model.HasValue ? Model : null), new { @class = "dateTimePicker" })

И используйте какой-нибудь jquery datepicker. думаю, что этот работает с jquery ui по умолчанию.

person Lasse Edsvik    schedule 04.02.2014

Могу ли я использовать его для моего редактора DateTime?

С помощью этого плагина JQuery TimePicker у вас определенно может быть одно поле Editor.

person ramiramilu    schedule 04.02.2014