2010-09-22 5 views
1

J'ai donc ajouté cette route à ma carte:asp.net MVC2 Routes

routes.MapRoute(
     "Default", 
     "/Bikes/{id}", 
     new { controller = "Bike", action = "Detail" } 
    ); 

Mais pour des raisons de SEO nous devons avoir urls comme: /vélos/54/nom-de-vélo/genre -de-vélo/nombre-de-roues ... etc etc. Mais tout après id (54) peut être ignoré.

Est-ce que quelqu'un sait comment créer un tel MapRoute pour permettre que la route ne fonctionne pas au-dessus de fait de celles qui contiennent des choses après l'id.

Répondre

3

Vous pouvez utiliser un paramètre catchall comme si

routes.MapRoute(
    "Default", 
    "/Bikes/{id}/{*stuff}", 
    new { controller = "Bike", action = "Detail", stuff = UrlParameter.Optional } 
); 

alors quoi que ce soit après id sera stocké dans des choses

1

Quelque chose comme ça

routes.MapRoute(
    "Default", 
    "/Bikes/{id}/{slug*}", 
    new { controller = "Bike", action = "Detail", 
      slug = UrlParameter.Optional} 
); 
+0

Vous devez utiliser '{* limace} 'comme le vôtre n'est pas valide – Buildstarted