c# - for - custom validation mvc
¿Cómo implemento la validación de modelo personalizado en ASP.NET Core? (1)
En versiones anteriores de ASP.NET MVC, la forma de agregar validación personalizada a su modelo era mediante la implementación de IValidatableObject y la implementación de su propio método Validate() . Como ejemplo:
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");
}
}
}
¿Sigue siendo esta la forma recomendada de agregar validación personalizada a un modelo en ASP.NET Core? El uso de IValidatableObject toma una dependencia de System.ComponentModel.DataAnnotations .
Hay dos formas de hacer una validación de modelo personalizado en ASP.NET Core:
- Un atributo personalizado subclasificado de
ValidationAttribute. Esto es útil cuando desea aplicar lógica comercial personalizada a una propiedad particular del modelo con un atributo. - Implementando
IValidatableObjectpara la validación de nivel de clase. Use esto en su lugar cuando necesite hacer la validación en un modelo completo a la vez.
La documentación tiene ejemplos de ambos. En su caso, IValidatableObject probablemente sea el mejor enfoque.