У меня проблемы с Html.ActionLink, когда у меня есть маршрут, который принимает более одного параметра. Например, учитывая следующие маршруты, определенные в моем файле Global.asax:
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 = "" }
);
Первые два маршрута работают без проблем, но когда я пытаюсь создать ссылку действия на третий маршрут, используя:
<%= Html.ActionLink(Html.Encode(product.Name), "Details", new { id = product.ProductId, slug = Html.Encode(product.Name) }) %>
В итоге я получаю URL-адрес, например [site-root] / Details / 1? Slug = url-slug , тогда как я хотел бы, чтобы URL был больше похож на [site-root] / подробности / 1 / URL-слизняк
Кто-нибудь может увидеть, где я иду не так?