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