2009-11-20 8 views
5

Me pregunto cómo borrar campos después de una devolución de datos en asp.net mvc? Al igual que ahora, cuando se producen errores de validación, los campos permanecen llenos con lo que ingrese un usuario. Sin embargo, esto está bien, cuando no se producen errores de validación, quiero que todos los campos se borren y aparezca un mensaje.¿Cómo borrar los campos después de la publicación en asp.net mvc?

Así que ahora tengo éxito en mostrar usando ViewData pero no estoy seguro de cómo hacer que los campos se despejen.

Respuesta

0

Suena como un trabajo para el PRG (Post Redirect Get) pattern porque no desea que los usuarios para actualizar la página y lo han presentará de nuevo.

Para hacer esto, pondría un mensaje o una marca en su TempData para que pueda inspeccionarlo cuando vuelva a dirigirlo a la url original para luego mostrarle un mensaje al usuario.

2

Phil Haack dijo:

Trate de llamar

ModelState["value1"].Value = new 
ValueProviderResult(null, 
string.Empty, 
CultureInfo.InvariantCulture); 

antes de volver la vista desde el interior de su acción del controlador.

Lo que esto hace es mantener todos los errores asociado con la tecla "valor1", pero reemplaza el valor con un valor vacío .

From this SO question

-1

Puede asignar el modelo, nueva referencia cuando publique su modelo en la vista.
Algo como esto.

if (ModelState.IsValid) 
    { 
     //Do your stuff here. 

     yourModel = new Moodel(); 
     return View(yourModel); 

    } 

En este escenario, todos los campos del modelo estarán vacíos y no se mostrará nada en el formulario.

+0

Esto no funciona, ModelState.Clear() hace embargo –

8

Prueba esto:

if(ModelState.IsValid) 
{ 
    ModelState.Clear(); 
} 
return View(); 
+0

que también desee establecer sus errores ModelState después de esta línea :) – stuartdotnet

Cuestiones relacionadas