1: Это легко решить, изменив значение DateTime на необнуляемое. Это означает, что введенное значение даты и времени должно быть разбираемым и, следовательно, действительным, а затем использовать атрибут:
[DataType(DataType.Date)]
вместорегулярное выражение.Это позволит убедиться, что поле является обязательным и должно обрабатываться.
2: Это проблема шаблонов.Самый простой способ - создать собственный шаблон Date.ascx внутри / Views / Shared / EditorTemplates, который вызывает ToShortDateString () и подключит ваш jquery datepicker.
Вот как выглядит мой:
<%@ Import Namespace="System.Web.Mvc.Html" %>
<%
string displayText = string.Empty;
if (Model != null)
{
if (DateTime.Parse(Model.ToString()) != DateTime.MinValue)
displayText = DateTime.Parse(Model.ToString()).ToShortDateString();
}
%>
<%= Html.TextBox("", displayText, new { @class = "date-box" })%>