2011-01-10 31 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) %> 
相關問題