我有一个带有默认索引操作的控制器,以及每个渲染自己视图的许多其他操作。
当一个动作方法调用另一个动作时,浏览器中的Uri就像是
http://localhost/Home/Events/20100120/Sydney
我如何在我的一个模板中创建一个动作链接,例如,仍然保留其他路线值? http://localhost/Home/Events/20100120/Sydney/10PM
如果我这样做,我会丢失Uri中的所有其他路线值。
<%= Html.ActionLink("View 10PM times", "Events", "Home", new Dictionary<string, object>() { {"time", "10PM"} })%>
答案 0 :(得分:0)
自动保留路线数据。假设您有以下路线:
routes.MapRoute(
"MyRoute",
"foo/{token1}/{token2}/{action}",
new { controller = "Home", action = "Action1", token1 = "", token2 = "" }
);
现在您请求/foo/t1/t2/Action1
并在视图中写下指向Action2
的链接:
<%= Html.ActionLink("Action2", "Action2")%>
将生成以下网址:/foo/t1/t2/Action2
。保留路线值。
答案 1 :(得分:0)
您可以像这样使用Html.RouteLink():
<%
var routeData = new RouteValueDictionary(this.ViewContext.RouteData.Values);
routeData.Add("time", "10PM");
%>
<%=Html.RouteLink("View 10PM times", routeData) %>