52 votes

Comment créer une route "catch all" pour gérer les requêtes "404 page not found" en ASP.NET MVC ?

Est-il possible de créer une route finale qui capture tous les et renvoie l'utilisateur vers une vue 404 en ASP.NET MVC ?

NOTE : Je ne veux pas configurer cela dans mes paramètres IIS.

0 votes

Voir ma réponse à la question " stackoverflow.com/questions/619895/ ".

1voto

solanki dev Points 37

À l'intérieur de RouterConfig.cs ajoutez le morceau de code suivant :

  routes.MapRoute(
           name: "Error",
           url: "{id}",
           defaults: new
           {
               controller = "Error",
               action = "PageNotFound"

           });

1voto

Edward Brey Points 8771

Une alternative à la création d'une route "fourre-tout" est d'ajouter une route de type Application_EndRequest à votre MvcApplication par La réponse MVC 404 de Marco, meilleure que celle des licornes. .

0voto

Laxmeesh Joshi Points 1

Si la route ne peut pas être résolue, alors le framework MVC enverra une erreur 404... La meilleure approche est d'utiliser les filtres d'exception ... Créez un exceptionfilter personnalisé et faites comme ceci...

public class RouteNotFoundAttribute : FilterAttribute, IExceptionFilter {
    public void OnException(ExceptionContext filterContext) {
        filterContext.Result  = new RedirectResult("~/Content/RouteNotFound.html");
   }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X