2010-07-23 8 views
0

J'ai une classe de compétition et une classe de competitionEntry. Un concours peut avoir 5 questions (juste des valeurs de chaîne) et le competitionEntry peut avoir 5 réponses (aussi seulement des valeurs de chaîne).Comment valider une propriété d'une classe différente avec DataAnnotations

Comment est-ce que je validerais cela si une question est présente que la réponse devrait être également présente?

Je pense avoir besoin d'un attribut de validation personnalisé, mais comment puis-je obtenir les propriétés de la classe de compétition pour vérifier si la réponse est remplie et si les questions doivent également l'être?

Répondre

0

Je ne pense pas que vous pouvez le faire avec un attribut. Il est plus logique que la classe Competition valide les entrées.

public class Competition 
{ 
    public bool AnswersAreCorrectFor(CompetitionEntry entry) 
    { 
     // check answers 
    } 
    // ... 
} 
+0

Je voudrais le faire via DataAnnotations car la prochaine étape serait la validation côté client. –

+0

Désolé j'ai mal lu la question. Je ne suis pas sûr qu'il existe un attribut de validation requis conditionnellement. Vous auriez besoin d'une bibliothèque côté client qui en connaît une si vous ne voulez pas écrire le JS vous-même. – Ryan

0

Je ne l'ai pas fait cela, mais autant que je sache, vous pouvez certainement le faire avec DataAnnotations.

Vous pouvez implémenter une sous-classe de ValidationAttribute.

Découvrez this question pour avoir l'idée.

Questions connexes