【发布时间】:2014-08-06 13:34:26
【问题描述】:
我想显示每个省或每个地区的山地自行车道列表。一个省由许多地区组成。
我正在尝试显示以下 2 个 URL:
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 方法。我更改了 2 个路由配置,但随后它们都转到了区域控制器的 Index 方法。
我想让www.mywebsite.com/paarl-trails去区域控制器的Index方法,我想让www.mywebsite.com/western-cape-trails去省份控制器的Index方法。
我怎样才能做到这一点?
【问题讨论】:
-
MVC 如何确定
paarl是一个地区而western-cape是一个省?您无法做到这一点的唯一方法是创建一个尝试确定它是什么的操作并手动路由到正确的操作。
标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4