J'ai du mal avec le Html.ActionLink quand j'ai un parcours qui prend plus d'un paramètre. Par exemple, étant donné les itinéraires suivants définis dans mon Global.asax fichier:
routes.MapRoute(
"Default", // Route name
"{controller}.mvc/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
routes.MapRoute(
"Tagging",
"{controller}.mvc/{action}/{tags}",
new { controller = "Products", action = "Index", tags = "" }
);
routes.MapRoute(
"SlugsAfterId",
"{controller}.mvc/{action}/{id}/{slug}",
new { controller = "Products", action = "Browse", id = "", slug = "" }
);
Les deux premiers itinéraires de travail sans problème, mais lorsque j'essaie de créer un lien d'action à la troisième route à l'aide de:
<%= Html.ActionLink(Html.Encode(product.Name), "Details", new { id = product.ProductId, slug = Html.Encode(product.Name) }) %>
Je me retrouve avec une URL de la forme [racine du site]/Détails/1?slug=url-limace alors que je voudrais l'URL à être plus comme [racine du site]/Détails/1/url-limace
Quelqu'un peut-il voir où je vais mal?