2011-01-10 52 views
0

我有一个具有默认索引动作的控制器,以及许多其他各自呈现其自己的视图的动作。在仍保留原始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

路由数据被自动保留。假设你有以下途径:

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。路线值被保存。

0

可以使用Html.RouteLink()像这样:

<% 
    var routeData = new RouteValueDictionary(this.ViewContext.RouteData.Values); 
    routeData.Add("time", "10PM"); 
%> 
<%=Html.RouteLink("View 10PM times", routeData) %> 
相关问题