如何从MVC中的表中获取CheckBoxFor值

时间:2017-09-08 13:18:30

标签: c# .net asp.net-mvc

我必须从表格列中选中复选框。我这样做是为了达到要求的结果,但无法找到确切的解决方案并在http post中返回null值。

    public ActionResult Index()
    {
        return View(db.Users.ToList());
    }
    [HttpPost]
    public ActionResult Index( List<User> user) 
    {
        return View(db.Users.ToList());
    }

查看

@model IEnumerable<EntityframeworkDemo.User>

@using (Html.BeginForm())
{
<table class="table">
@foreach (var item in Model) {
    <tr>
        <td>@Html.DisplayFor(modelItem => item.Name)</td>
        <td>@Html.DisplayFor(modelItem => item.Phone)</td>
        <td>@Html.DisplayFor(modelItem => item.Email)</td>
        <td>@Html.DisplayFor(modelItem => item.C_Password)</td>
        <td>@Html.CheckBoxFor(modelItem => item.Validations.Value)</td>
    </tr> }
</table>
<input type="submit" value="Post" />
}

模特课程:

Class User
{
        public int U_id { get; set; }
        public string Name { get; set; }
        public string Phone { get; set; }
        public string Email { get; set; }
        public string C_Password { get; set; }
        public bool? Validations { get; set; }
}

1 个答案:

答案 0 :(得分:0)

我建议你在Data Tier上处理Nullable boolean,当涉及到ViewModel时,使它成为常规布尔值,那么你的代码应该可以工作

public bool Validations {get;组;而不是

公共布尔?验证{get;组; }

@ Html.CheckBoxFor(modelItem =&gt; item.Validations)

而不是

@ Html.CheckBoxFor(modelItem =&gt; item.Validations.Value)

在数据层上检查您的行是否返回null并在

时将其设为false