Ранее я задавал этот вопрос, пытаясь использовать datepicker для проверки даты в asp.net mvc 4.5.1. Теперь я удалил datepicker и просто пытаюсь подтвердить дату в формате mm/dd/yyyy, используя аннотации данных в модели и regex, чтобы форматировать формат. Вот мой код:Проверка даты MVC ASP.NET с использованием аннотаций и regex данных
Model:
[DisplayName("Start Date")]
[DataType(DataType.Date, ErrorMessage = "Date not valid.")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
[RegularExpression(@"^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$", ErrorMessage = "Date must be in format mm/dd/yyyy")]
public DateTime? DT_Project_Start { get; set; }
Вид:
<div class="form-group">
@Html.LabelFor(model => model.DT_Project_Start, new { @class = "control-label col-md-2 CreateEditFieldNamesSpan" })
<div class="col-md-10">
@Html.TextBoxFor(model => model.DT_Project_Start)
@Html.ValidationMessageFor(model => model.DT_Project_Start)
</div>
</div>
Не работает ... проверка не работает отлично, а в форме, но когда я нажимаю «Отправить», он говорит неверная дата не важно, что , даже если дата действительна и в правильном формате. Кто-нибудь знает, что мне не хватает?
Потому что ваше свойство 'DateTime'. Удалить регулярное выражение (его бессмысленно). Вам нужно изменить метод '$ .validator' или использовать' jquery.globalize.js' См. [Этот ответ] (http://stackoverflow.com/questions/27285458/jquery-ui-datepicker-and-mvc-view- model-type-datetime/27286969 # 27286969), если вы используете jquery-ui datepicker –
Спасибо за ответ. Если я удалю регулярное выражение, как заставить клиента ввести 4-значный год? На данный момент я не использую datepicker. Он не работал с IE. –
Во-первых, '[DataType]' и '[DisplayFormat]' немного бессмысленны, если вы используете '@TextBoxFor()'. Во-вторых, вы должны подумать о том, чтобы задать вопрос о datepicker и IE, поскольку нет причин, по которым он не должен работать. –