Quiero que se muestre una página de error personalizada para 500, 404 y 403. Esto es lo que he hecho:
Se habilitaron errores personalizados en web.config de la siguiente manera:
<customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml"> <error statusCode="403" redirect="~/Views/Shared/UnauthorizedAccess.cshtml" /> <error statusCode="404" redirect="~/Views/Shared/FileNotFound.cshtml" /> </customErrors>
Registrado
HandleErrorAttribute
como un filtro de acción global en laFilterConfig
clase de la siguiente manera:public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new CustomHandleErrorAttribute()); filters.Add(new AuthorizeAttribute()); }
Creó una página de error personalizada para cada uno de los mensajes anteriores. El predeterminado para 500 ya estaba disponible de fábrica.
En cada vista de página de error personalizada se declara que el modelo de la página es
System.Web.Mvc.HandleErrorInfo
Para 500, muestra la página de error personalizada. Para otros, no lo hace.
¿Hay algo que este olvidando?
Parece que esto no es todo lo que hay para mostrar errores personalizados mientras leo el código en el OnException
método de la HandleErrorAttribute
clase y solo maneja 500.
¿Qué debo hacer para manejar otros errores?