0

我不知道如何命名这个问题。目前在我的 Razor 视图中,我有以下内容

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

最后一组数据,PosiFilter、TeamFilter、CurrentFilter 等在我的不同@Html.ActionLinks 视图中使用。有没有办法在我的页面开始时设置所有这些,

@{
    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 中使用它们,如下所示:

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

我尝试使用@Url.Action,但如果我想向该特定链接添加额外的路由值,但我无法弄清楚如何使用它,但包含之前的路由值。

4

1 回答 1

0

我想出了一个自己做这件事的方法。我使用 this.Request.RawUrl 和每个 actionlink 发送一个字符串 returnUrl,然后在我的控制器上我返回一个重定向到 returnUrl,而不是重定向到操作或返回 View()。

前视图:

@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);
        }
于 2016-07-21T05:29:07.870 回答