2017-10-11 6 views
0

Je ne comprends pas ce concept, donc après avoir fait un manuel et lu quelques articles, je décide de vous demander à tous.Routage dans MVC ne pas trouver la nouvelle URL

Je veux changer, juste pour tester, à partir de:

localhost/Accueil/Liste

Pour:

localhost/custom/Liste

Donc mon:

RouteConfig.cs

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 

    routes.MapRoute("Custom", "Custom/List/", 
     new 
     { 
      Controller = "Home", 
      Action = "List" 
     }); 

} 

Mais est ne fonctionne pas. La première url fonctionne encore mais la seconde ne trouve rien.

Merci

+1

Est-ce la seule définition d'itinéraire dans votre fichier 'RouteConfig.cs'? –

+0

@StephenMuecke. Dans Global.asax –

+0

j'ai modifié RouteConfig.cs et j'ai édité ma question. Merci –

Répondre

3

Les routes sont en ordre et votre Default itinéraire correspond à une URL avec entre zéro à 3 segments, donc ../Custom/List appelle la méthode List() de CustomController.

Vous devez modifier l'ordre de vos itinéraires afin que le Custom se trouve avant le DefaultRoute. ../Custom/List correspondra alors d'abord à cette route et passera à la méthode List() de HomeController

+0

Merci pour votre aide. Je comprends le mécanisme maintenant. –