我对ASP.Net MVC的RC1版本有疑问。每当我在“默认”路线之前添加路线时,创建的结果是为第一个路线添加的。
这是我在Global.asax.cs中的路由
routes.MapRoute(
"product-detailed",
"Products/{controller}/{action}/{id}",
new { controller = "ProductSubType", action = "Index", id = "" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
我的网址创建:
<%= Html.ActionLink("Bikes", "Index", "Bikes") %><br />
<%= Html.RouteLink("Bikes", "product-detailed", new { controller = "Bikes", action = "Index" }) %>
我希望第一个ActionLink创建一个像“/ Bikes / Index”的Url,第二个RouteLink创建“/ Products / Bikes / Index”,但两个Urls最终都是“/ Products / Bikes / Index”。
我在路由中缺少什么?
感谢。
答案 0 :(得分:4)
你没有遗漏任何东西。它按设计工作。
由于控制器和操作在顶部路径中都是可变的,对有效值没有限制,因此该路由对控制器和操作的所有值都有效。
潜在的解决方法: