Comment rediriger un utilisateur vers une page 404 personnalisée dans ASP.NET MVC au lieu de générer une exception?


18

Je veux être en mesure de capturer l'exception qui est levée lorsqu'un utilisateur demande un contrôleur inexistant et le rediriger vers une page 404. Comment puis-je faire ceci? Par exemple, l'utilisateur demande http://www.nosite.com/paeges/1 (doit être/pages/). Comment puis-je faire en sorte qu'ils soient redirigés vers l'écran 404 plutôt que vers l'écran d'exception?

6

Jetez un oeil à this page pour acheminer vos erreurs 404 vers une page spécifiée.

+2

Vous pouvez mettre à jour la réponse à inclure les détails pertinents à l'intérieur. 17 mai. 162016-05-17 05:03:44


16

Il suffit d'utiliser un itinéraire:

// We couldn't find a route to handle the request. Show the 404 page. 
routes.MapRoute("Error", "{*url}", 
    new { controller = "Error", action = "404" } 
); 

Puisque ce sera un gestionnaire global, mettre tout le chemin en bas sous la route par défaut.

+6

Est-ce vrai? Parce que si je définis une route pour {contrôleur}/{action}/{id} disons, et que l'utilisateur entre l'URL avec un contrôleur qui n'existe pas, il affichera un écran jaune comme ce premier itinéraire correspondra et votre attraper tout ne sera jamais atteint? 22 oct.. 082008-10-22 19:48:03

  0

Je viens de l'essayer, et je reçois toujours l'écran jaune par défaut 404. 15 déc.. 112011-12-15 21:03:17

+1

Cela fonctionne, mais cela signifie que vous devez avoir des routes manuelles pour tous vos contrôleurs, c'est-à-dire pas de {controller}/{action}/{id } 'à la place, vous devriez faire' Home/{action}/{id} ',' Compte/{action}/{id} ', etc 22 janv.. 132013-01-22 23:01:38

  0

@SerjSagan, de nos jours, vous pouvez utiliser des contraintes de route, comme:' routes .MapRoute ( ) nom: "Accueil", url: "{action}", par défaut: nouveau {controller = "Accueil", action = "Index"}, contraintes: nouveau {action = "Index | Aide | Commandes "} );' 08 mars. 162016-03-08 12:43:01


1

trouvé sur le même site - Strategies for Resource based 404s

+1

Les réponses de liens seulement sont déconseillées sur SO. 21 oct.. 162016-10-21 22:27:38