2010-06-03 14 views
5

sto usando DA 4.0 con un'applicazione MVC e hanno creato un validatore personalizzato come illustrato di seguito:Uso 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; 
} 

mi piacerebbe etichettare un messaggio di errore come un errore critico o no. Se non si tratta di un errore critico, mi piacerebbe accedervi a mio avviso e renderlo in un modo diverso.

Quindi, ci sono 2 parti di questa:

  1. fallimenti Tag come i diversi tipi di validatore personalizzato
  2. Modificare il ModelBinder predefinito per identificare l'errore critico

Come farei Questo?

risposta

2

Entrambe le domande richiedono la riscrittura di un intero gruppo di codice di gestione degli errori interni di MVC. Non esiste un percorso semplice che possa essere visto per aggiungere il livello di errore a tutte le diverse posizioni in cui si verifica la convalida di ModelState e ViewModel.

L'unica risposta a "Come dovrei farlo?" è "con un sacco di codice personalizzato". ;)

+0

Cosa succede se non utilizzo le annotazioni dei dati e non utilizzo un framework di convalida diverso? –

+1

@Dave Schilling Quindi è necessario fare una domanda diversa. ;) – jfar

Problemi correlati