Как показать пользовательское сообщение об ошибке для атрибута DisplayFormat в Asp.Net MVC? - PullRequest
5 голосов
/ 25 января 2012

Как показать пользовательское сообщение об ошибке для

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]

Код в моей модели следующий,

[Display(Name = "When was that document issued?")]
[DataType(DataType.Date, ErrorMessageResourceName = "DocumentIssueDate_DataType",ErrorMessageResourceType = typeof(CustomErrorMessages))]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
 public DateTime? DocumentIssueDate { get; set; }

В моем представлении при вводе 201 в текстовом поле даты появляется следующее сообщение об ошибке. Как мне изменить сообщение об ошибке ниже.

Значение '201' недопустимо для DocumentIssueDate.

Ответы [ 2 ]

2 голосов
/ 27 июня 2014

После долгих исследований мне не повезло. Единственным решением было использовать RegularExpression.

Вместо использования:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]

Вы можете использовать:

[RegularExpression(@"^(3[01]|[12][0-9]|0[1-9])[-/](1[0-2]|0[1-9])[-/][0-9]{4}$", ErrorMessageResourceName = "Date Not Valid")]

RegularExpression соответствует формату даты dd/MM/yyyy.

Обычный до сих пор не тест, да, но вы можете искать и редактировать, если нужно

0 голосов
/ 31 августа 2012

Попробуйте просмотреть ответы Здесь. Я думаю, DisplayFormat не предназначен для проверки, поэтому вы не можете использовать его для проверки правильности введенной строки.

...