Je veux une page d'erreur personnalisée montré pour 500, 404 et 403. Voici ce que j'ai fait:
1) a Permis d'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>
2) Inscrits HandleErrorAttribute
comme une action globale de filtre dans l' FilterConfig
classe comme suit:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new CustomHandleErrorAttribute());
filters.Add(new AuthorizeAttribute());
}
3) a Créé une page d'erreur personnalisée pour chacun des messages ci-dessus. Celui par défaut pour les 500 était déjà disponible hors de la boîte.
4) a Déclaré dans chaque page d'erreur personnalisée de vue que le modèle de la page est - System.Web.Mvc.HandleErrorInfo
Pour 500, il affiche la page d'erreur personnalisée. Pour les autres, il ne le fait pas.
Est-il quelque chose que je suis absent?
Il ne ressemble ce n'est pas tout à affichage personnalisé des erreurs que j'ai lu à travers le code de l' OnException
méthode de HandleErrorAttribute
de la classe et elle est la manipulation à seulement 500.
Que dois-je faire pour gérer d'autres erreurs?