我在视图中
@model IEnumerable<RolesMVC3.Models.Estudent>
.
.
.
@for (var i = 0; i < Model.Count(); i++)
{
<tr>
<td> @Html.CheckBox("CheckValue")</td>
<td> @Html.DisplayFor(m => m[i].CodeEstudent) @Html.HiddenFor(m => m[i].IdEstudent)</td>
<td>@Html.DisplayFor(m => m[i].NameEstudent) @Html.DisplayFor(m => m[i].LastNameEstudent)</td>
</tr>
}
.
.
.
在控制器中:
[HttpPost]
public ActionResult MyController(List<ESTUDENT> estudents, List<bool> CheckValue)
{
///Actions
}
但是,我为每个学生收了两个CheckBox。
e.g。我发送29并在控制器中收到58
如何将CheckBox与此列表中的学生相关联并进入控制器?
答案 0 :(得分:3)
首先,您需要了解ASP.NET MVC如何呈现复选框:
<input id="RememberMe" type="checkbox" value="true" name="RememberMe" />
<input type="hidden" value="false" name="RememberMe" />
它是如何工作的?表单始终提交hidden
字段并仅在选中后才提交type="checkbox"
,然后标题栏位于类型(bool
),如果有两个值,则设置为true
,否则false
。
在您的示例中,您需要为index
设置CheckBox
,因此您将发送29对数据,而不是58个独立值。
更多详情: