Задний план:
Проверка модели необходима для гарантии того, что полученные данные действительны и верны, чтобы мы могли выполнять дальнейшую обработку с этими данными. Мы можем проверить модель в методе действия. Встроенные атрибуты проверки: Compare, Range, RegularExpression, Required, StringLength. Однако у нас могут быть сценарии, в которых нам потребуются атрибуты проверки, отличные от встроенных.
Настраиваемые атрибуты проверки
public class EmployeeModel
{
[Required]
[UniqueEmailAddress]
public string EmailAddress {get;set;}
public string FirstName {get;set;}
public string LastName {get;set;}
public int OrganizationId {get;set;}
}
Чтобы создать настраиваемый атрибут проверки, вам необходимо унаследовать этот класс от ValidationAttribute.
public class UniqueEmailAddress : ValidationAttribute
{
private IEmployeeRepository _employeeRepository;
[Inject]
public IEmployeeRepository EmployeeRepository
{
get { return _employeeRepository; }
set
{
_employeeRepository = value;
}
}
protected override ValidationResult IsValid(object value,
ValidationContext validationContext)
{
var model = (EmployeeModel)validationContext.ObjectInstance;
if(model.Field1 == null){
return new ValidationResult("Field1 is null");
}
if(model.Field2 == null){
return new ValidationResult("Field2 is null");
}
if(model.Field3 == null){
return new ValidationResult("Field3 is null");
}
return ValidationResult.Success;
}
}
Надеюсь это поможет. Ура!
Ссылки