我正在开发一个应用程序,该应用程序需要将按钮值从视图传递到控制器以过滤数据库。
在这里,我需要将2009年至2018年/当前年份显示为我使用操作链接的按钮。我不确定如何将要进入循环的年份传递给控制器,以仅获取点击的年份结果。
查看:
var year = DateTime.Now.Year;
for (var i = year; i > 2009; i--)
{
var j = @i - 1;
<div class="col-md-1 ">
@Html.ActionLink(i.ToString(), "MyCases/" + i)
</div>
}
控制器:
public ActionResult MyCases(int i)
{
var cases = _db.case.Where(p => p.date.Value.Year == i)
.OrderByDescending(p => p.date).ToList();
return View(cases);
}
答案 0 :(得分:1)
您可以将年份作为所使用的ActionLink重载的路由值参数。传递名称与操作方法参数名称(i
)相同的匿名对象。
@Html.ActionLink(i.ToString(), "MyCases", new { i = i })
ActionLink
帮助程序将为锚标记建立正确的标记,其中您的href属性值将类似于MyCases?i=2018
,其中2018
是i
的样本值>
您可以使用this overload明确指定控制器名称
@Html.ActionLink(i.ToString(), "MyCases","Home", new { i = i }, null)