2011-10-18 16 views
5

Desidero cancellare il valore inviato di un campo in un modello se lo ModelState indica che il campo non è valido.Cancella valore campo se ModelState dice che il campo non è valido

Questo è il punto in cui sono arrivato finora ma non riesco a legare la chiave per valutare il modello. Eventuali suggerimenti?

if (!ModelState.IsValid) 
{ 
    foreach (string key in ModelState.Keys) 
    { 
    if (!ModelState.IsValidField(key)) 
    { 
     // This field is not valid so set to empty string in model 
     // Something like.... 
     model[key] = ""; 
    } 
    } 
} 

risposta

11

Si dovrebbe restituire la stessa vista con il modello ricevuto e anche modificare il codice al seguente:

if (!this.ModelState.IsValidField(key)) 
{ 
    var emptyValue = new ValueProviderResult(
     string.Empty, 
     string.Empty, 
     CultureInfo.CurrentCulture); 

    this.ModelState.SetModelValue(
     key, 
     emptyValue); 
} 
+0

So che questa è una vecchia questione. Ma come estensione a questa domanda -> Come accediamo al modello con valori aggiornati, se non desidero che il mio modello contenga valori non validi. – user979737

Problemi correlati