2011-01-10 3 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")%> 

次のURLが生成されます:/foo/t1/t2/Action2を。ルート値は保存されます。

あなたがそうのようなHtml.RouteLinkを()を使用することができます
0

<% 
    var routeData = new RouteValueDictionary(this.ViewContext.RouteData.Values); 
    routeData.Add("time", "10PM"); 
%> 
<%=Html.RouteLink("View 10PM times", routeData) %> 
関連する問題