2016-07-16 4 views
0

この質問のタイトルをどのように指定するのか分かりませんでした。現在、私のかみそりビューで私はRazorビューで再利用するrouteValuesを一度作成する

@Html.ActionLink("Rank -1", "ChangeRank", new 
      { 
       id = item.ID, 
       newRank = (item.UserRank + 1), 
       PosiFilter, 
       TeamFilter, 
       CurrentFilter, 
       userLeagueID 
      }) 

次のデータ、PosiFilter、TeamFilter、CurrentFilterなどの最後のセットが異なるの@ Html.ActionLinksにすべての私のビューの上に使用されてきました。

@Html.ActionLink("Rank -1", "ChangeRank", new 
       { 
        id = item.ID, 
        newRank = (item.UserRank + 1), 
        GroupedRouteValues 
       }) 

私が試した@ Url.Actionで遊ん:一度私のページの開始時にこれらのすべてを設定する方法、

@{ 
    ViewBag.Title = "Index"; 
    string PosiFilter = @ViewBag.posiFilter; 
    string TeamFilter = @ViewBag.teamFilter; 
    string CurrentFilter = @ViewBag.CurrentFilter; 
    int userLeagueID = @ViewBag.userLeagueID; 

var GroupedRouteValues = PosiFilter, TeamFilter, CurrentFilter, userLeagueID 
} 

、その後、そのようにActionLinkの中でそれらを使用するがありますその特定のリンクに追加のルート値を追加したいが、それ以前のルート値を追加したい場合は、そのリンクを使用する方法を理解できなかった。

答えて

0

私はこれを自分で行う方法を考え出しました。私は、各アクションリンクでthis.Request.RawUrlを使用して文字列returnUrlを送信し、その後、私のコントローラでは、リダイレクトをActionへのリダイレクトまたはReturn View()の代わりにreturnUrlにリダイレクトします。

ビューの例:

@Html.ActionLink("Rank -1", "ChangeRank", new 
       { 
        id = item.ID, 
        newRank = (item.UserRank + 1), 
        returnUrl = this.Request.RawUrl 
       }) 

コントローラの元

public ActionResult ChangeRank (int id, int newRank, string returnUrl) 
     {    
      //DO something    
      return Redirect(returnUrl); 
     } 
関連する問題