在global.asax
中 routes.MapRoute(
"Test_Default", // Route name
"test/{controller}/{action}", // URL with parameters
new { }
);
routes.MapRoute(
"Default",
"{universe}",
new { controller = "notfound", action = "error"}
);
我有一个控制器:Home,包含一个动作:索引 在浏览器中输入url:h ** p:// localhost:53235 / test / home / index
在< body>中的index.aspx视图内tag:我想链接到第二条路线。
<%=Html.RouteLink("Link", new { universe = "MyUniverse" })%>
这不应该生成到Global.asax中第二条路线的链接吗?上面生成的url是:h ** p:// localhost:53235 / test / home / index?universe = MyUniverse。如果我指定路线的名称,我只能让它工作:<%=Html.RouteLink("Link", "default", new { universe = "MyUniverse" })%>
我错过了什么吗?
答案 0 :(得分:0)
正如您所发现的,如果要生成指向第二条路线的链接,则需要使用路线名称。将始终评估第一个路由,因为即使路由定义中不存在universe
参数,它也只是作为查询字符串参数传递。