2011-10-18 17 views
5

Quiero borrar el valor presentado de un campo en un modelo si el ModelState muestra que el campo no es válido.Borrar el valor del campo si ModelState dice que el campo no es válido

Aquí es donde he llegado hasta el momento pero no puedo atar la llave del valor en el modelo. ¿Alguna sugerencia?

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] = ""; 
    } 
    } 
} 

Respuesta

11

Usted debe devolver el mismo punto de vista con el modelo recibido y también cambiar su código a la siguiente:

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

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

Sé que esto es una cuestión de edad. Pero como una extensión de esta pregunta -> ¿Cómo accedemos al modelo con valores actualizados, si no quiero que mi modelo contenga valores no válidos? – user979737

Cuestiones relacionadas