在asp.net mvc的使用缺省路由和使用ActionLink的ASP.NET MVC 3路由问题
@Html.ActionLink("title", "Index", "Question", new { id = 25}, null)
的结果是:
http://localhost/question/index/25
改变链接
http://localhost/question/25
我在Global.asax中默认添加了新的路由角色:
routes.MapRoute(
"default2", // Route name
"Question/{id}", // URL with parameters
new { controller = "Questions", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
我有同样的问题用户,标签,...,我应该为每个主题创建相同的角色吗?
你在哪里添加路由?如果您在{controller}/{action}/{id}的默认MVC路径之后添加了它,则需要将其移至默认路径上方。此外,你不能有两个具有相同名称的路线,所以我建议调用这条路线“问题”或什么。 –
@NickBork,你说得对。我在'default'之前添加了这条路线。和名称不同(更新后) – Mironline
那么移动路由位置会导致ActionLink生成正确的actionlink代码?如果是这样,您可以创建另外两条路线,一条用于“用户”,另一条用于“标签”,或者您可以修改新路线并使用路线约束进行一些过滤以仅匹配“问题”,“用户”或“标签” –