Recherche…


Validation de modèles avec attributions de validation

Les attributs de validation peuvent être utilisés pour configurer facilement la validation du modèle.

public class MyModel
{
    public int id { get; set; }

    //sets the FirstName to be required, and no longer than 100 characters
    [Required]
    [StringLength(100)]
    public string FirstName { get; set; }
}

Les attributs intégrés sont:

  • [CreditCard] : Valide que la propriété a un format de carte de crédit.
  • [Compare] : valide deux propriétés dans une correspondance de modèle.
  • [EmailAddress] : valide la propriété a un format de courrier électronique.
  • [Phone] : Valide que la propriété dispose d'un format téléphonique.
  • [Range] : valide la valeur de la propriété dans la plage donnée.
  • [RegularExpression] : Valide que les données correspondent à l'expression régulière spécifiée.
  • [Required] : Rend une propriété requise.
  • [StringLength] : [StringLength] qu'une propriété de chaîne a au maximum la longueur maximale indiquée.
  • [Url] : valide la propriété a un format d'URL.

Validation du modèle avec un attribut personnalisé

Si les attributs intégrés ne sont pas suffisants pour valider les données de votre modèle, vous pouvez placer votre logique de validation dans une classe dérivée de ValidationAttribute. Dans cet exemple, seuls les nombres impairs sont des valeurs valides pour un membre du modèle.

Attribut de validation personnalisé

public class OddNumberAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        try
        {
            var number = (int) value;
            if (number % 2 == 1)
                return ValidationResult.Success;
            else
                return new ValidationResult("Only odd numbers are valid.");
        }
        catch (Exception)
        {
            return new ValidationResult("Not a number.");
        }            
    }
}

Classe de modèle

public class MyModel
{
    [OddNumber]
    public int Number { get; set; }
}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow