J'utilise DataAnnotations dans un projet qui est une pure application C#, quel est le meilleur moyen de valider mes modèles/documents par rapport aux attributs DataAnnotations?Validation de DataAnnotations à partir d'une classe
4
A
Répondre
6
pas de moi, mais mon ami Steve Sanderson:
internal static class DataAnnotationsValidationRunner
{
public static IEnumerable<ErrorInfo> GetErrors(object instance)
{
return from prop in TypeDescriptor.GetProperties(instance).Cast<PropertyDescriptor>()
from attribute in prop.Attributes.OfType<ValidationAttribute>()
where !attribute.IsValid(prop.GetValue(instance))
select new ErrorInfo(prop.Name, attribute.FormatErrorMessage(string.Empty), instance);
}
}
Vous pourriez avoir besoin d'améliorer cela, par exemple, si vous voulez [DataType (DataType.EmailAddress)] pour valider réellement adresses e-mail, ou si vous voulez pour supporter l'attribut [MetadataType].
13
Ceci est maintenant possible dans C# 4
var result = new List<ValidationResult>();
bool valid = Validator.TryValidateObject(Vehicle, new ValidationContext(Vehicle, null, null), result);
Cela aussi vous donner les détails de la validation.
Questions connexes
- 1. validation MVC de date à l'aide DataAnnotations
- 2. Passer de DataAnnotations à Fluent Validation
- 3. Localisation de DataAnnotations Attribut de validation personnalisée
- 4. DataAnnotations Classe MetadataType ignore les propriétés de classe de base
- 5. asp.net mvc 2 DataAnnotations validation
- 6. ASP.Net MVC Validation via DataAnnotations
- 7. MVC2 validation des DataAnnotations avec l'héritage
- 8. DataAnnotations validation et de liant modèle personnalisé
- 9. validation client MVC2/serveur de DateTime/date à l'aide DataAnnotations
- 10. Utilisation de DataAnnotations pour validation dans MVVM
- 11. DataAnnotations Validation jQuery dans asp.net mvc 2
- 12. ASP.NET MVC - DataAnnotations pour la validation client
- 13. Comparer les dates DataAnnotations validation asp.net mvc
- 14. MVC2 DataAnnotations avec validation côté serveur
- 15. Combinaison de DataAnnotations Validation avec des règles métier complexes
- 16. Validation de DataAnnotations dans le classeur de modèle personnalisé
- 17. Validation conditionnelle de portions d'un modèle ASP.NET MVC avec DataAnnotations?
- 18. problème avec DataAnnotations en classe partielle
- 19. ASP.Net MVC 2 - Validation jQuery et formulaire Submit - DataAnnotations
- 20. asp.NET MVC 2 DataAnnotations UpdateModel <T> validation
- 21. Comment valider une propriété d'une classe différente avec DataAnnotations
- 22. Validation sur DropDownListFor ne fonctionne pas avec DataAnnotations
- 23. Puis-je désactiver la validation DataAnnotations sur DefaultModelBinder?
- 24. ASP.NET MVC 2: validation des données DataAnnotations être convention
- 25. Validation de polynômes à partir d'une chaîne
- 26. Carte CodeIgniter Validation de la classe à la validation Jquery
- 27. Validation des données de classe
- 28. Validation d'une classe à l'aide de DataAnotations
- 29. Création de DataAnnotations à l'exécution à partir de votre propre système de métadonnées
- 30. ValidationContext Comprendre dans DataAnnotations