Я не уверен, что вы ожидаете с точки зрения «готовой функциональности», но вы можете создать два атрибута достаточно просто.В MVC 3 у вас также есть возможность извлечь вашу модель из IValidatableObject
и реализовать метод Validate
.Последний предоставляет вам возможность выполнить несколько проверок нескольких свойств в контексте друг друга, если вы обнаружите необходимость.
Вот как вы можете реализовать атрибут ValidationAttribute и украсить свое свойство.Вам понадобятся два из них, поэтому я назову этот UsernameExistsAttribute
, и мы представим, что вы создали еще один с именем AccountAlreadySetupAttribute
, переопределяющий тот же метод IdValid
.
public class UsernameExistsAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
if((string)value == "Bob")
return false;
else
return true;
}
}
И вв вашей модели представления вы украшаете атрибут следующим образом:
public class FreakinSweetViewModel
{
[UsernameExists(ErrorMessage="Username exists")]
[AccountAlreadySetup(ErrorMessage="Account is not setup")]
public string Username { get; set; }
}
Это соединит проверку на стороне клиента и сервера из поля MVC 3.