Dans les versions précédentes d'ASP.NET MVC, la manière d'ajouter une validation personnalisée à votre modèle consistait à implémenter la méthode IValidatableObject
et à implémenter votre propre méthode Validate()
. Par exemple:
public class BestModelEver : IValidatableObject {
public DateTime? Birthday { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) {
if (Birthday.HasValue) {
yield return new ValidationResult("Error message goes here");
}
}
}
Est-ce toujours le moyen recommandé d'ajouter une validation personnalisée à un modèle dans ASP.NET Core? L'utilisation de IValidatableObject
prend un System.ComponentModel.DataAnnotations
dépendance.
Il existe deux façons d'effectuer une validation de modèle personnalisée dans ASP.NET Core:
ValidationAttribute
. Cela est utile lorsque vous souhaitez appliquer une logique métier personnalisée à un modèle particulier propriété avec un attribut.IValidatableObject
pour la validation au niveau de la classe. Utilisez-le à la place lorsque vous devez effectuer la validation sur un modèle entier à la fois.documentation contient des exemples des deux. Dans votre cas, IValidatableObject
serait probablement la meilleure approche.