Contexte:
Des validations de modèle sont nécessaires pour garantir que les données reçues que nous recevons sont valides et correctes afin que nous puissions poursuivre le traitement avec ces données. Nous pouvons valider un modèle dans une méthode d'action. Les attributs de validation intégrés sont Compare, Range, RegularExpression, Required, StringLength. Cependant, nous pouvons avoir des scénarios dans lesquels nous avons besoin d'attributs de validation autres que ceux intégrés.
Attributs de validation personnalisés
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;}
}
Pour créer un attribut de validation personnalisé, vous devrez dériver cette classe de 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;
}
}
J'espère que cela t'aides. À votre santé !
Références