2010-06-03 1 views
5

I DA 4.0 mit einer MVC-Anwendung verwenden und habe einen benutzerdefinierten Validator erstellt, wie unten dargestellt:Mit 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; 
} 

würde Ich mag eine Fehlermeldung als Kritischer Fehler markieren, oder nicht. Wenn es sich nicht um einen kritischen Fehler handelt, möchte ich dies aus meiner Sicht aufrufen und auf andere Weise rendern.

So gibt es 2 Teile dazu:

  1. Tag Ausfälle als verschiedene Typen in der benutzerdefinierten Validator
  2. die Standard-Modelbinder Ändern Sie die kritischen Fehler zu identifizieren

Wie würde ich tun Dies?

Antwort

2

Bei beiden Fragen müssen Sie eine ganze Reihe von MVCs internen Fehlerbehandlungscode neu schreiben. Es gibt keinen einfachen Pfad, den ich sehen kann, um allen verschiedenen Orten, an denen ModelState und ViewModel validiert werden, Fehlerschwere hinzuzufügen.

Die einzige Antwort auf "Wie würde ich das tun?" ist "mit viel benutzerdefiniertem Code". ;)

+0

Was passiert, wenn ich keine Datenannotationen verwende und mit einem anderen Validierungsrahmen gehe? –

+1

@Dave Schilling Dann müssen Sie eine andere Frage stellen. ;) – jfar