5

J'utilise System.ComponentModel.DataAnnotations d'espace de noms tha en C# 4 pour mettre en œuvre mon propre attribut de validation et il semble que ceValidation personnalisée attribut avec plusieurs instances problème

[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] 
public sealed class MyCustomValidator : ValidationAttribute { 
    private String Property1 { get; set; } 
    private String Property2 { get; set; } 

    public ValeTaxiSituacaoRequired(String property1, String property2) { 
     Property1 = property1; 
     Property2 = property2; 
    } 

    public override bool IsValid(object value) { 
     //validation logic 
    } 

} 

Je veux utiliser cet attribut comme ci-dessous

[MyCustomValidator("Name", "Job")] 
[MyCustomValidator("Name", "Email")] 
[MyCustomValidator("Name", "Job")] 
public class Employe { 
} 

Le problème est qu'une seule validation est effectuée. Comment puis-je exécuter toutes les validations (en utilisant asp.net mvc 2)?

Répondre

0

Jetez un oeil à FluentValidation. Il vous permet de séparer votre validation des classes en cours de validation pour que vous puissiez appeler votre logique de validation à tout moment, sur le serveur ou le client.

Il vous permet d'ajouter autant de règles de toute complexité à une classe, sans les encombrer d'attributs.

3

Si vous souhaitez implémenter AllowMultiple = true sur votre propre attribut, premier TypeID prioritaire et à côté de solution à JQuery regarder l'article sur le projet de code here