首页 > 解决方案 > 从 ASP.NET MVC 中的复选框中获取值

问题描述

我有这个 for-each 循环来显示(如果合适,设置检查):

<div class="col-lg-9 col-xl-6">
    @if (Model.PersonTypes != null)
    {
        foreach (var _t in Model.AllPersonTypes)
        {
            <label class="kt-checkbox kt-checkbox--bold kt-checkbox--brand">
                <input type="checkbox" name="PersonType" checked="@Model.PersonTypes.FirstOrDefault(n => n.PersonTypeName == _t.PersonTypeName)"> @_t.PersonTypeName
                <span class="kt-margin-l-10"></span>
            </label>
        }
    }
</div>

Model.PersonTypes包含Person所属的类型,Model.AllPersonTypes包含所有可用的人员类型

在此处输入图像描述

我需要的是在更新Person控制器中的详细信息时如何获取选定的值

标签: c#asp.net-mvc

解决方案


您的 POST 模型(您的 post 操作接受的模型)应该包含一个属性,该属性包含一个集合,比如说 int - 或者您的 PersonType 主键数据类型是什么。然后修改您的复选框元素以包含一个值。

public class PostPersonTypeModel {
    public List<int> PersonType {get;set;} = new List<int>();
}
<input   type="checkbox" 
         name="PersonType" 
         checked="@Model.PersonTypes.FirstOrDefault(n => n.PersonTypeName == _t.PersonTypeName)" 
         value="@_t.PersonTypeID"> @_t.PersonTypeName

然后,您的PostPersonTypeMode.PersonType集合将为每个选中的项目保存一个元素。


推荐阅读