Anexsoft | Blog y dictado de cursos de Tecnología

En este encontrarás tutoriales de tecnología como PHP, ASP.NET MVC, Front-End, entre otros y cursos exigentes de modalidad online que te ayudarán a crecer profesionalmente.

Implementando un Custom Error Page con ASP.NET MVC
Actualizado el 06 Enero, 2017 y leído 6,334 veces
Calificación: 10.00 / 10

Implementando un Custom Error Page con ASP.NET MVC

Anexsoft

Bien señores, está entrada es bastante sencilla y práctica, el objetivo es mostrar una linda página personalizada a nuestros usuarios en vez de la pantalla amarilla de errores.

 

Modificando el Global.asax.cs

Lo primero que vamos hacer es ir a nuestro Global.asax.cs y agregar el método para detectar errores.

protected void Application_Error(object sender, EventArgs e)
{
    Exception exception = Server.GetLastError();
    Response.Clear();

    HttpException httpException = exception as HttpException;

    int error = httpException != null ? httpException.GetHttpCode() : 0;

    Server.ClearError();
    Response.Redirect(String.Format("~/Error/?error={0}", error, exception.Message));
}

Lo que estamos haciendo ahí es redireccionar al controlador Error, y pasarle un parámetro indicando el tipo de error, ya sea 404 (página no encontrada), 500 (error en el servidor) entre otros. ¿Entonces que tenemos que hacer ahora?, implementar nuestro controlador Error.

 

Creando nuestro controlador Error

Nuestra acción Index va a recibir un parámetro del tipo numérico el cual es el tipo de error ocurrido, lo que nos queda hacer es una validación simple para cargar información sobre los ViewBag.

public class ErrorController : Controller
{
    // GET: Error
    public ActionResult Index(int error = 0)
    {
        switch (error)
        {
            case 505:
                ViewBag.Title = "Ocurrio un error inesperado";
                ViewBag.Description = "Esto es muy vergonzoso, esperemos que no vuelva a pasar ..";
                break;

            case 404:
                ViewBag.Title = "Página no encontrada";
                ViewBag.Description = "La URL que está intentando ingresar no existe";
                break;

            default:
                ViewBag.Title = "Página no encontrada";
                ViewBag.Description = "Algo salio muy mal :( ..";
                break;
        }

        return View("~/views/error/_ErrorPage.cshtml");
    }
}

Realizado esto solo nos queda implementar nuestra vista.

 

La vista de errores

En mi caso yo lo he hecho muy simple y estoy heredando de un Layout, por lo cual mi código ha quedado de esta manera.

<h2 class="page-header">@ViewBag.Title</h2>
<p>@ViewBag.Description</p>

 

Realizando pruebas

  • 404: digiten en la URl un controlador o acción que no exista como, ilove/bbq
  • 500: produzcan una excepción no controlada en algún controlador, este debería redireccionar a la página de error.

 

Adjunto el ejemplo para descargar el cual lo he implementando dentro del proyecto que vimos como hacer un login con ASP.NET MVC.

PD: con un poco de CSS pueden mejorar su página personalizada de errores, búsquen en google: CSS Custom Error Pages, debe salir una lista de páginas listas para usarlas en nuestro proyecto.

¡Adquiera ya!

  • Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#

    Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#
  • Código de fuente de Red Social desarrollada en ASP.NET MVC

    Código de fuente de Red Social desarrollada en ASP.NET MVC
  • Software de Venta e Inventario hecho en PHP y Codeigniter

    Software de Venta e Inventario hecho en PHP y Codeigniter

Últimas publicaciones

Encuesta

¿Sobre qué te gustaría que se hable más?

Síguenos

Estudia con nosotros y crece profesionalmente

Nuestros cursos han sido hecho en base a lo que demanda el mercado hoy en día.
La experiencia obtenida es la de un ambiente laboral.

Anexsoft
© 2018 Anexsoft, blog y cursos online de TI.