Вы можете указать атрибут StringLength следующим образом для многочисленных свойств
[StringLength(20, ErrorMessageResourceName = "StringLengthMessage", ErrorMessageResourceType = typeof(Resource))]
public string OfficePhone { get; set; }
[StringLength(20, ErrorMessageResourceName = "StringLengthMessage", ErrorMessageResourceType = typeof(Resource))]
public string CellPhone { get; set; }
и добавить строковый ресурс (с именем StringLengthMessage
) в файл ресурсов
"Maximum length is {1}"
Сообщение определеноодин раз и имеет переменный заполнитель, если вы передумаете относительно длины для проверки.
Вы можете указать следующее:
- {0} - Имя
- {1} - Максимальная длина
- {2} - Минимальная длина
Обновление
Чтобы минимизировать дублирование, вы можете создать подкласс StringLengthAttribute:
public class MyStringLengthAttribute : StringLengthAttribute
{
public MyStringLengthAttribute() : this(20)
{
}
public MyStringLengthAttribute(int maximumLength) : base(maximumLength)
{
base.ErrorMessageResourceName = "StringLengthMessage";
base.ErrorMessageResourceType = typeof (Resource);
}
}
Или вы можете переопределить FormatErrorMessage
, если хотите добавить дополнительные параметры.Теперь свойства выглядят следующим образом:
[MyStringLength]
public string OfficePhone { get; set; }
[MyStringLength]
public string CellPhone { get; set; }