【发布时间】:2016-12-10 19:15:32
【问题描述】:
ASP.NET MVC 4 应用程序允许标记表行。 Razor 视图包含:
@using (Html.BeginForm())
{
<table class="table table-hover">
@foreach (var f in Model.Failid)
{
<tr>
<td>@f.FailiNimi</td>
<td>
@Html.CheckBox("c" + f.Id.ToString())
</td>
</tr>
}
</table>
<input type="submit" class="btn btn-success" />
@Html.AntiForgeryToken()
}
如果提交按钮被按下,浏览器会发送带有 body 的 post 请求
c40=false&c9=true&c9=false&c9=false&c10=false&c13=false
控制器签名是
[HttpPost, ValidateAntiForgeryToken]
public ActionResult Failid(NameValueCollection nv)
{
...
但是控制器中的 nv 参数值为空。复选框名称不作为控制器参数传递。
如何获取控制器中选中的复选框名称列表?
【问题讨论】:
-
您考虑过编辑器模板吗? stackoverflow.com/questions/38961222/…
-
不要使用
foreach循环 - 请参阅 this answer。并使用代表您要编辑的视图模型 - 参考 this answer
标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor