2011-04-27 3 views
5

J'ai un nouveau site Web asp.net mvc 3 avec le moteur rasoir et j'essaie de préparer le site pour la production où je ne peux pas faire apparaître l'écran jaune de la mort. Dans webforms c'est facile, il suffit d'activer customErrors dans web.config et vous avez terminé.Page d'erreur personnalisée dans asp.net mvc 3

Pour tester je configurer une méthode de contrôleur de test en tant que tel:

public ActionResult Ex() 
    { 
     throw new InvalidOperationException(); 
    } 

Je pensais la vue d'erreur (/Views/Shared/Error.cshtml) affiché à la place que je reçois l'écran jaune de la mort avec le message "L'opération n'est pas valide en raison de l'état actuel de l'objet." J'ai essayé d'activer customErrors dans le web.config et cela ne fonctionne toujours pas. J'appelle la méthode RegisterGlobalFilters dans Global.asax mais j'ai également essayé d'appliquer directement l'attribut HandleError.

Merci pour votre aide.

+0

Le message que vous voyez est attendu avec CustomErrors activé - que s'est-il passé avec CustomErrors désactivé? –

Répondre

12

Activez les erreurs personnalisées et acheminez-les vers un contrôleur d'erreur.

<customErrors mode="On" defaultRedirect="~/Error/Unknown"> 
    <error statusCode="403" redirect="~/Error/NoAccess" /> 
    <error statusCode="404" redirect="~/Error/NotFound" /> 
</customErrors> 

Le contrôleur a besoin des actions Unknown, NoAccess et NotFound. Chacun devra renvoyer une vue.

Questions connexes