【发布时间】:2013-08-29 18:39:37
【问题描述】:
这是我的简单操作链接:
<span>@Html.ActionLink(trip.TripDescription, "Index", "Home", new { trip = trip.Trpp, year = trip.TripYear })</span>
这是我通往该链接的路线:
routes.MapRoute(
"Index",
"{controller}/{action}/{trip}/{year}",
new { controller = "Home", action = "Index", trip = "", year = "" }
);
这是正在渲染的内容:
http://localhost:31065/Home/Index?trip=Green&year=2013
我希望它改为呈现这个:
http://localhost:31065/Home/Index/Green/2013
这两个网址都可以,但在外观上我更喜欢后者。
我需要改变什么来让参数放在斜线后面而不是使用老派?和&
TIA
【问题讨论】:
-
我希望它能够按照您的方式工作。如果在路由定义中没有设置
trip = "", year = ""怎么办? -
在您展示的路线之前,您是否还定义了其他路线?
-
@QuetiM.Porta 当我从路由中删除这些参数时,呈现的 url 是:localhost:31065/Home/Index?Length=4 这根本不起作用。
-
@dombenoit 我有一个新的 MVC 4 项目附带的默认路由,在我下面列出的项目之前,它只包含:控制器、操作和可选 ID
-
@ChristopherJohnson 会这样做,默认路由将首先匹配,而您想要的路由永远不会被击中。请参阅下面的答案。
标签: asp.net-mvc-4 asp.net-mvc-routing razor-2 html.actionlink