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

时间:2018-08-09 19:39:18

标签: asp.net-mvc view parameters html.actionlink

我需要使用相同的视图,但是根据用户选择在表中显示的按钮而具有不同的数据。我想通过仅通过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");

    }

1 个答案:

答案 0 :(得分:2)

使用ActionLink帮助方法中的this overload

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

第四个参数是路由值对象,将用于生成锚标记的href属性值的查询字符串项。第五个参数是htmlAttributes。如果您没有,只需传递null

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

这将为带有href值的锚标签生成HTML标记

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