Будет ли работать ответ Ника Кларка, когда вы отправляете значения при обратной передаче?
В предварительном просмотре 2 MVC2 вызов Html.Textbox ("abc", Model.ToString ())
отобразит текстовое поле с добавлением «.abc» к имени, например,
<input id="StartDate_abc" name="StartDate.abc" type="text" value="02 Feb 09" />
, что вызовет проблемы при обратной передаче и попытке UpdateModel ().
Я сделал шаблон редактора для DateTime, у меня работает следующее:
/ Views / Shared / EditorTemplates / DateTime.ascx:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %>
<%= Html.TextBox(String.Empty, Model.ToString("dd MMM yy")) %>
или, чтобы использовать DatePicker jQuery для всех ваших DateTimes
добавьте ссылку на jQuery и jQueryUI либо на главную страницу, либо на представление, содержащее вызов EditorFor.
/ Views / Shared / EditorTemplates / DateTime.ascx:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %>
<%= Html.TextBox("", Model.ToString("dd MMM yy")) %>
<script type="text/javascript">
$("#<%= ViewData.ModelMetadata.PropertyName %>").datepicker({ dateFormat: 'dd M y' });
</script>
Обновление: ASP.NET MVC3 с использованием синтаксиса Razor:
@model System.DateTime
@Html.TextBox("", Model.ToString("dd MMM yy"))
<script type="text/javascript">
$("#@ViewData.ModelMetadata.PropertyName").datepicker({ dateFormat: 'dd M y' });
</script>
И чтобы использовать все, что вам нужно в вашем представлении:
@Html.EditorFor(model => model.DueDate)
Матф