Я хочу иметь возможность сопоставить маршрут, используя URL, который не соответствует формату {controller} / {action} / {id}. Отображение выглядит так:
routes.CreateArea("Root", "MyApp.Web.Controllers",
routes.MapRoute("Category-List", "Category/{category}",
new { controller = "Category", action = "List" }),
routes.MapRoute("Default", "{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" })
);
Где у меня есть CategoryController
с действием List(string category)
.
Я надеялся, что смогу использовать это, на мой взгляд:
<%= Html.ActionLink<CategoryController>(
c => c.List(category.UrlFriendlyName),
category.Name)%>
(разрывы строк добавлены для удобства чтения)
Все, что это производит, является ссылкой с href=""
. Удаление маршрута из области «Корень» дает правильный результат. Можно ли использовать этот тип сопоставления с универсальным помощником ActionLink или мне нужно прибегнуть к RouteLink или к чему-то похожему с жестко закодированными значениями?
Я также безуспешно попробовал следующее:
<%= Html.ActionLink(category.Name, "List", "Category",
new { category = category.UrlFriendlyName }) %>