none
redireccionar a pagina de Error en MVC 5 RRS feed

  • Pregunta

  • buen dia!!

    he observado que cuando se crea un proyecto MVC, el asistente crea estas 2 paginas Error.cshtml y _Layout.cshtml

    cuando ha ocurrido un error se dirección a esta pagina ( Error.cshtml), pero si en algún momento quiero redireccionar a otra pagina con una advertencia o si no cumple una condición como:

    if (MyClase.Warnning == "2") { throw new Exception("error"); //pasar a pagina error o de advertencia

    Server.Transfer("~/warningPage.cshtml"); }

    como realizaria esta opcion???

    ya he realizado un throw new exception, pero no quiero mandar errores, y simplemente redirirgir a la pagina warningpage... 

     me sale el siguiente ERROR httpexception respuesta no disponible en este contexto en la linea 

    Server.Transfer("~/warningPage.cshtml");

    Gracias



    • Editado greg_dorian martes, 16 de junio de 2015 22:54
    viernes, 5 de junio de 2015 14:50

Respuestas

  • me respondo y creo que le sirva a alguien que tambien aprende mvc 5

    la linea en ves de Server.Transfer("~/warningPage.cshtml");

    es:

    HttpContext.Current.RewritePath("~/warningPage");

    obvia mente hacer un controller que direccione a la vista 

            public ActionResult warning()
            {
                return View("warning");
            }
    • Marcado como respuesta greg_dorian martes, 16 de junio de 2015 14:13
    martes, 16 de junio de 2015 14:13

Todas las respuestas

  • No sé si esto habrá cambiado en la versión 5, pero hasta el MVC4 podías determinar la página de error poniendo en el método de acción (o en el controlador, si quieres que afecte a todos los métodos) un atributo como este:

    [HandleError(View = "NombreDeLaVista", ExceptionType = typeof(ElTipoDeLaExcepcion))]

    En tu caso, "NombreDeLaVista" sería "warningPage", y ElTipoDeLaExcepcion sería una excepción personalizada tal como public class MiExcepcion: System.Exception {} , que lanzarías con el throw en lugar de Exception.

    viernes, 5 de junio de 2015 18:21
  • me respondo y creo que le sirva a alguien que tambien aprende mvc 5

    la linea en ves de Server.Transfer("~/warningPage.cshtml");

    es:

    HttpContext.Current.RewritePath("~/warningPage");

    obvia mente hacer un controller que direccione a la vista 

            public ActionResult warning()
            {
                return View("warning");
            }
    • Marcado como respuesta greg_dorian martes, 16 de junio de 2015 14:13
    martes, 16 de junio de 2015 14:13
  • A mí personalmente me gusta más la opción que comentaba Alberto: utilizar un filtro de excepción utilizando el atributo HandleError.

    martes, 16 de junio de 2015 14:39
  • A mí personalmente me gusta más la opción que comentaba Alberto: utilizar un filtro de excepción utilizando el atributo HandleError.

    Coincido me agrada más la otra opción.
    martes, 16 de junio de 2015 16:35
  • A mí personalmente me gusta más la opción que comentaba Alberto: utilizar un filtro de excepción utilizando el atributo HandleError.

    pero no necesito que se haga un HandleError!! no busco llevar a pagina de errores... es para redireccionar a otra pagina...
    martes, 16 de junio de 2015 22:53
  • A mí personalmente me gusta más la opción que comentaba Alberto: utilizar un filtro de excepción utilizando el atributo HandleError.

    pero no necesito que se haga un HandleError!! no busco llevar a pagina de errores... es para redireccionar a otra pagina...
    pues el título de tu solicitud de ayuda dice: "redireccionar a pagina de Error en MVC 5!!", 
    miércoles, 17 de junio de 2015 15:14