У меня есть такой атрибут, который проверяет минимальную и максимальную длину строки:
[StringLength(10, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 3)]
public string PropertyName {get; set;}
По сути, это то, как он объявлен в шаблоне asp.net mvc 3.0 по умолчанию (у них просто максимум 100).
Таким образом, если строка содержит менее 3 символов, сообщение об ошибке на экране будет выглядеть следующим образом:
"The PropertyName must be at least 3 characters long."
Так что я не вижу никаких проблем с этим в таком случае
Но если строкадлина будет больше 10, сообщение на дисплее по-прежнему будет
"The PropertyName must be at least 3 characters long."
Так что теперь оно становится неправильным
Но если я изменю шаблон сообщения на что-то вроде этого:
[StringLength(10, ErrorMessage = "The {0} must be at least {2} characters long and maximum {1} characters long", MinimumLength = 3)]
Сообщение об ошибке для обоих случаев будет таким:
"The PropertyName must be at least 3 characters long and maximum 10 characters long"
И это не так хорошо
1) Сообщение длинное
2) Было бы лучше отображать отдельное сообщение для каждого случая, поэтому возникает вопрос: как мне это сделать?
Можно ли как-то отобразить два разных сообщения, одно сообщение, если длина меньше минимальной?и еще одно сообщение это длина большечем максимум?
Я мог видеть только один способ исправить это объявить два отдельных атрибута StringLength
, один из которых проверял бы минимум, другой - максимум, но невозможно добавить два одинаковых атрибута в метод, такжеЯ бы использовал атрибуты MinLength
и MaxLength
, но они не генерируют ненавязчивые атрибуты.Похоже, я должен написать свой пользовательский атрибут проверки
Но было бы здорово отобразить два разных сообщения для каждого случая (мин. И макс.) Для одного StringLength
атрибута валидации, если это было бы возможно, что выдумаю