none
Evitar el doble registro cuando se presiona F5 RRS feed

  • Pregunta

  • Buenas a todos, soy nuevo en este foro y en la programación, tengo un problema en mi aplicacion MVC3, el problema conciste en lo siguiente:

    Cuando guardo registros en la bd mediante un boton me redirecciona a otro pagina, hasta ahi todo bien, pero si preciono F5, vuelve a insertar los datos en la bd.

    Si alguien sabe como hacer para que no se vuelva a insertar en la bd, me gustaria que comentara, y de antemano muchas gracias.

    Para hacer la transaccion uso:

    * La vista principal(donde se capturan los datos)

    *El controlador (donde se realizan todas las transacciones)

    * La vista que se manda llamas cuando se han registrado los datos

    Muchas Gracias

    miércoles, 27 de marzo de 2013 19:11

Todas las respuestas

  • Si al refrescar la página se te graban de nuevo los datos sin presentarte una advertencia el navegador, significa que estás haciendo la grabación con GET en lugar de POST. Esto es una pésima idea; las peticiones que se envíen al servidor con un GET nunca deben modificar datos, únicamente leerlos. Si la grabación la haces cuando se pulsa el submit de un formulario, se envía un POST al servidor, y lo procesas con un método de acción marcado como [HttpPost]. En estas circunstancias, si pulsas F5 para tratar de refrescar la página que contiene el formulario, el navegador presenta una advertencia del estilo de "Ojo, para poder refrescar esta página tendríamos que volver a transmitir los datos del Post [Ok, Cancelar]". Desde luego, hay que educar a los usuarios para que no desoigan esa advertencia, que existe por un buen motivo (si vuelves a enviar los datos, se volverá a disparar el métdo que los procesa, y si no tiene ningún control para impedirlo, se volverán a grabar).
    jueves, 28 de marzo de 2013 10:20