2016-07-16 2 views
0

Ich war mir nicht sicher, wie diese Frage zu titeln ist. Zur Zeit in meiner Razor Ansicht habe ich folgendenbuild routeValues ​​einmal in Razor wieder verwenden View

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

Den letzten Satz von Daten, die PosiFilter, TeamFilter, current, etc ist alles über meine Ansicht in verschiedenen @ Html.ActionLinks verwendet. Gibt es eine Möglichkeit alle diese einmal zu Beginn meiner Seite zu setzen,

@{ 
    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 
} 

und sie dann in einem Actionlink verwenden wie so:

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

Ich habe versucht, das Spiel mit @ Url.Action aber ich konnte nicht herausfinden, wie man es benutzt, wenn ich zusätzliche Routenwerte zu dieser bestimmten Verbindung hinzufügen möchte, aber die Routenwerte früher enthalten soll.

Antwort

0

Ich habe einen Weg gefunden, dies alleine zu machen. Ich sende eine Zeichenkette returnUrl mit this.Request.RawUrl mit jedem Aktionslink und dann auf meinem Controller Ich gebe eine Weiterleitung an returnUrl statt Redirect to Action oder Return View().

Ex of View:

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

ex Regler

public ActionResult ChangeRank (int id, int newRank, string returnUrl) 
     {    
      //DO something    
      return Redirect(returnUrl); 
     } 
Verwandte Themen