In früheren Versionen von ASP.NET MVC konnten Sie Ihrem Modell eine benutzerdefinierte Überprüfung hinzufügen, indem Sie die Methode IValidatableObject
und Ihre eigene Methode Validate()
implementieren. Als Beispiel:
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");
}
}
}
Ist dies weiterhin die empfohlene Methode zum Hinzufügen einer benutzerdefinierten Überprüfung zu einem Modell in ASP.NET Core? Mit IValidatableObject
wird ein System.ComponentModel.DataAnnotations
Abhängigkeit.
Es gibt zwei Möglichkeiten, eine benutzerdefinierte Modellüberprüfung in ASP.NET Core durchzuführen:
ValidationAttribute
. Dies ist nützlich, wenn Sie eine benutzerdefinierte Geschäftslogik auf eine bestimmte Modelleigenschaft mit einem Attribut anwenden möchten.IValidatableObject
für die Validierung auf Klassenebene. Verwenden Sie diese Option, wenn Sie ein gesamtes Modell auf einmal validieren müssen.Die Dokumentation enthält Beispiele für beide. In Ihrem Fall wäre IValidatableObject
wahrscheinlich der beste Ansatz.