Я хочу отобразить список трасс для горных велосипедных прогулок по провинциям или районам. Область состоит из многих областей.Различные конфигурации маршрутов, идущие к одному и тому же методу действия
Я пытаюсь отобразить следующие 2 адреса:
www.mywebsite.com/paarl-trails (area trails)
www.mywebsite.com/western-cape-trails (province trails)
У меня есть следующая конфигурация маршрута (в указанном порядке):
routes.MapRoute(
name: "ProvinceDefault",
url: "{seoProvinceName}-trails",
defaults: new { controller = "Province", action = "Index" },
namespaces: new[] { "MyProject.WebUI.Controllers" }
);
routes.MapRoute(
name: "AreaDefault",
url: "{seoAreaName}-trails",
defaults: new { controller = "Area", action = "Index" },
namespaces: new[] { "MyProject.WebUI.Controllers" }
);
Вот как я создаю ссылки в представлении:
<a href="@Url.RouteUrl("AreaDefault", new { seoAreaName = trail.Area.SeoName })">@trail.Area.Name</a>,
<a href="@Url.RouteUrl("ProvinceDefault", new { seoProvinceName = trail.Area.Province.SeoName })">@trail.Area.Province.Name</a>
Соединения отображаются правильно, но оба они перенаправлены на индексный метод указателя провинции. Я изменил две конфигурации маршрутов, но они оба перешли к методу Index контроллера области.
Я хочу, чтобы www.mywebsite.com/paarl-trails
, чтобы перейти к методу индекса контроллера области, и я хочу, чтобы www.mywebsite.com/western-cape-trails
перешел к методу Index для контроллера провинции.
Как я могу получить это право?
Как MVC может определить, что 'paarl' является областью, а' западный мыс 'является провинцией? Единственный способ, которым вы могли бы это сделать, - создать действие, которое пыталось определить, что это такое, и вручную направлять на правильное действие. – DavidG