复选框列表“true,false”值MVC 3

时间:2012-10-28 05:48:28

标签: asp.net-mvc asp.net-mvc-3

我在视图中

@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与此列表中的学生相关联并进入控制器?

1 个答案:

答案 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个独立值。

更多详情: