Je veux une page d'erreur personnalisée affichée pour 500, 404 et 403. Voici ce que j'ai fait:
Activé les erreurs personnalisées dans le web.config comme suit:
<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>
Enregistré
HandleErrorAttribute
comme filtre d'action global dans laFilterConfig
classe comme suit:public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new CustomHandleErrorAttribute()); filters.Add(new AuthorizeAttribute()); }
Création d'une page d'erreur personnalisée pour chacun des messages ci-dessus. Celui par défaut pour 500 était déjà disponible dès la sortie de la boîte.
Déclaré dans chaque vue de page d'erreur personnalisée que le modèle de la page est
System.Web.Mvc.HandleErrorInfo
Pour 500, il affiche la page d'erreur personnalisée. Pour d'autres, ce n'est pas le cas.
Y a-t-il quelque chose qui me manque?
Il semble que ce ne soit pas tout ce qu'il faut pour afficher les erreurs personnalisées lorsque je lis le code dans la OnException
méthode de la HandleErrorAttribute
classe et qu'il n'en gère que 500.
Que dois-je faire pour gérer d'autres erreurs?