Я создаю приложение ASP.NET Mvc. У меня есть модель данных, скажем, пользователь
<code>
public class user
{
public int userId {get; private set};
public string FirstName {get; set;}
}
Проверка должна быть сделана, что имя не может превышать 50 символов.
У меня есть другая модель презентации, в которой у меня есть свойство FirstName. Я не хочу повторять логику валидации в обеих моделях. Я хочу иметь это в одном месте, и это должно быть так.
Я могу сделать это проще, добавив функцию, которая может быть вызвана при установке свойства, например
<code>
private string firstName;
public string FirstName
{
get
{
return firstName;
}
set
{
if (PropertyValidator.ValidName(value)) // assuming ValidName exists and it will throw an exception if the value is not valid
{
firstName = value;
}
}
}
Но я ищу что-то гораздо более простое, чтобы мне не нужно было добавлять это для каждого свойства, которое мне нужно, чтобы оно было проверено. Я посмотрел на ValidationAttribute, но опять же я могу проверить это только из контроллера (ModelState.IsValid). Так как эта модель могла использоваться некоторыми другими типами приложений, такими как консольное приложение, я не мог выбрать это. Но если есть способ использовать ModelState.IsValid Mvc вне контроллера, это было бы здорово. Любые предложения приветствуются.
Спасибо !!