Quero uma página de erro personalizada mostrada para 500, 404 e 403. Aqui está o que fiz:
Ativou erros personalizados no web.config da seguinte maneira:
<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 um filtro de ação global naFilterConfig
classe da seguinte maneira:public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new CustomHandleErrorAttribute()); filters.Add(new AuthorizeAttribute()); }
Criou uma página de erro personalizada para cada uma das mensagens acima. O padrão para 500 já estava disponível imediatamente.
Declarado em cada visualização de página de erro personalizada que o modelo para a página é
System.Web.Mvc.HandleErrorInfo
Para 500, mostra a página de erro personalizada. Para outros, não.
Há algo que estou perdendo?
Parece que isso não é tudo o que há para exibir erros personalizados à medida que leio o código no OnException
método da HandleErrorAttribute
classe e está lidando com apenas 500.
O que preciso fazer para lidar com outros erros?