Отдельное сообщение об ошибке для минимальной и максимальной длины строки - MVC4 Аннотации данных

Кто-нибудь, пожалуйста, поделится своей реализацией наличием отдельных сообщений об ошибках для минимальной и максимальной длины строки с использованием аннотаций данных в MVC?

Кажется, что StringLength допускает только одно сообщение об ошибке a MinLength/MaxLength не генерирует ненавязчивую разметку проверки, поскольку они не являются IClientValidatable

Хотя это похоже на очень распространенное требование, я не могу найти реализацию в Интернете.

Ответ 1

Вы можете использовать аннотацию данных RegularExpression для минимальной проверки и использовать атрибут StringLength для максимальной проверки. Javascript будет выполнять клиентскую часть с регулярными выражениями, чтобы они были хорошими и ненавязчивыми! Вы можете использовать только один атрибут RegularExpression для каждого свойства, в противном случае вы могли бы сделать как максимальный, так и минимальный, используя регулярное выражение.

Минимум 5 символов

[RegularExpression(@"^.{5,}$", ErrorMessage = "Minimum 5 characters required")]

Максимум 50 символов

[StringLength(50, ErrorMessage = "Maximum {2} characters exceeded")]

Ответ 2

Хотя это не отдельные сообщения, это то, что я сделал:

[StringLength(30, ErrorMessage = "Must be between {2} and {1} characters long.", MinimumLength = 6)]

Ответ 3

[StringLength(800, ErrorMessage = "<img src='/images/icon-info.png' /><p>The {0} must be between {2} and {1} characters long.</p>", MinimumLength = 6)]

Отобразится изображение, а также минимальная и максимальная длина.