是否可以通过@Html.ActionLink传递参数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (510)

我需要使用相同的视图,但是根据用户选择在表中显示的按钮有不同的数据。我想通过html.actionlink传递一个参数来做到这一点。

这就是我目前在“视图”中的内容

 <li id="liOpenJobs">@Html.ActionLink("All Jobs", "AllJobs", "AdminJobs", new { filter = "All" })</li>

控制器

        [HttpGet]
    public ActionResult AllJobs(string filter)
    {
        if (PCSSession.Current.IsAuthenticated)
        {
            var jobs = new JobRepository();
            var model = new JobsHistoryViewModel();
            if(filter == "All")
            {
                model.jobHistory = jobs.GetAllJobs("alljobs");
            }


            return View(model);
        }

        return RedirectToAction("AdminLogin", "AdminLogin");

    }
提问于
用户回答回答于

使用这种过载的ActionLink辅助方法

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    RouteValueDictionary routeValues,
    IDictionary<string, Object> htmlAttributes
)

第四个参数是路由值对象,它将用于生成锚标记的querystring项href属性值第五个参数是htmlAttributes。如果你没有,只需通过null

@Html.ActionLink("All Jobs", "AllJobs", "AdminJobs", new { filter = "All" }, null)
@Html.ActionLink("Some Jobs", "AllJobs", "AdminJobs", new { filter = "some"}, null)

这将为锚标记生成HTML标记。

/AdminJobs/AllJobs?filter=All/AdminJobs/AllJobs?filter=some

扫码关注云+社区

领取腾讯云代金券