none
Mostrar mensaje de error sin recargar la pagina RRS feed

  • Pregunta

  • Buenas estoy trabajando con MCV y mi vista en Razor, lo que necesito es enviar del controlador un msj de error a mi vista, sin que la pagina recargue. 

    *Me encuentro en la pagina Create y si se produce un error debería mostrarlo sin recargar, y si no se produce un error redireccionar a la pagina Index

     if (rangoPersona == 0)
                        {
                            RangoPersona entidad = Model2Class(modelo);

                            DAO.Helper.GetDAOFactory().GetDAO<RangoPersonaDAO>().Save(entidad);

                            return RedirectToAction("Index");
                        }
                        else
                        { 
                            return RedirectToAction("Create");
                        }

    Saludos!. 


    José Maria Antunez

    viernes, 6 de diciembre de 2019 16:09

Todas las respuestas

  • hola

    La unica forma de hacer esto es con SignalR, con esto tendras la posibilidad de hacer Push Server enviando notificaciones del servidor al cliente

    Introducción a SignalR

    >>Me encuentro en la pagina Create y si se produce un error debería mostrarlo sin recargar

    pero como llegaste al Create ?  si fue como parte del submit de un post al servidor entonces la pagina ay se esta recargando

    Si hay un error se controla de forma diferente porque deberias asignar el ModelState

    ASP.NET MVC: ValidationSummary

    usando el ModelState.AddModelError() no necesitas redireccionar a ningun lado, solo asignas el error para que se visualice al volver la respuesta y verlo en la pagina

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 9 de diciembre de 2019 12:40
  • Buena tarde José Maria Antunez

    Antes que nada, espero te encuentres bien

    Respecto al código que comentas. Lo que estás realizando en el caso de que el modelo no sea válido, es realizar un re direccionamiento a la Vista de CREATE, esto no significa una “actualización” o refresco de la pantalla, se debe entender como si lo redirigieras a una pantalla nueva, y por ello los campos del formulario no aparecen con los datos previamente capturados.

    Para este efecto se necesita regresar el modelo a la vista. Te platico cómo mediante un Ejemplo

    1 Tengo mi modelo definido así

    Clase modelo con campos requeridos para producir error en la vista: Animal

    2 Mi formulario lo he llenado de la siguiente forma

    Formulario donde se llena un sólo campo, de los dos requeridos por el modelo

    3 Se envía el formulario y reviso el debug para confirmar que se fue al flujo deseado

    Confirmación de que la petición ejecutó el flujo esperado por la validación del modelo

    4 Reviso la pantalla en el navegador para confirmar que: los datos que introduje en la primera petición son retornados, y que el mensaje de error (por default) es mostrado

    Pantalla donde se muestra un mensaje de error de campo Requerido, conservando valores llenados en formulario en una petición anterior

    Adicionalmente, muestro el código de la vista de CREATE 

    Vista CREATE para controlador ANIMAL

    Favor de comentar si la consulta ha sido resuelto

    Saludos


    ING.ARGAMA


    • Editado ING.ARGAMA miércoles, 11 de diciembre de 2019 19:55 Se agrega una imagen con el código de la vista
    • Propuesto como respuesta ING.ARGAMA viernes, 3 de enero de 2020 20:17
    miércoles, 11 de diciembre de 2019 19:49