2010-06-03 8 views
5

J'utilise DA 4.0 avec une application MVC et ont créé un validateur personnalisé comme indiqué ci-dessous:Utilisation DataAnnotations 4.0

public static ValidationResult NumberOfItems(int numItems, ValidationContext pValidationContext) 
{ 
    if (numItems == 1) 
    { 
     //Tag as critical error 
     //return new ValidationResult... 
    } 

    if (numItems > 1 && numItems <= 10) 
    { 
     //Tag as non critical error 
    } 

    //Else it's successful 
    return ValidationResult.Success; 
} 

je voudrais marquer un message d'erreur comme une erreur critique ou non. Si ce n'est pas une erreur critique, j'aimerais y accéder à mon avis et le rendre d'une manière différente.

Donc, il y a 2 parties à ceci:

  1. échecs Tag que différents types dans le validateur personnalisé
  2. Modifier le ModelBinder par défaut pour identifier l'erreur critique

Comment pourrais-je faire ce?

Répondre

2

vos deux questions nécessitent réécrivant tout un tas de code de gestion d'erreur interne MVC. Il n'y a pas de chemin facile que je puisse voir pour ajouter la gravité de l'Erreur à tous les différents endroits où la validation de ModelState et ViewModel se produit.

La seule réponse à « Comment puis-je faire cela? » est "avec beaucoup de code personnalisé". ;)

+0

Que se passe-t-il si je n'utilise pas d'annotations de données et si j'utilise un cadre de validation différent? –

+1

@Dave Schilling Ensuite, vous devez poser une question différente. ;) – jfar