Asp.net mvc 如何使用两个列表MVC设置选中的复选框

Asp.net mvc 如何使用两个列表MVC设置选中的复选框,asp.net-mvc,checkbox,Asp.net Mvc,Checkbox,我从ViewBag列表中绑定了多个复选框。我在添加记录时使用了此模式。但现在我有了编辑的情况。我已将选中的复选框ID保存在不同的表中。现在在“编辑”中,如何根据添加该记录时用户所做的选择将其选中 @foreach (var item in ViewBag.Features) { <div class="form-group form-animate-checkbox col-md-4 col-sm-12"> <input type="checkbox"

我从ViewBag列表中绑定了多个复选框。我在添加记录时使用了此模式。但现在我有了编辑的情况。我已将选中的复选框ID保存在不同的表中。现在在“编辑”中,如何根据添加该记录时用户所做的选择将其选中

@foreach (var item in ViewBag.Features)
{
    <div class="form-group form-animate-checkbox col-md-4 col-sm-12">
        <input type="checkbox" class="checkbox Amenities" value="@item.ID" name="@item.Name">
        <label class="lblamenities">@item.Name</label>
    </div>
}
@foreach(ViewBag.Features中的变量项)
{
@项目名称
}

在ViewBag中。功能是列表类型变量,其中包含id和名称,但在您的需求中,您需要在保存之前选中这些复选框。 因此,您可以选择另一个参数或变量作为bool类型,这些id保存在我们的数据库中。选择的变量为true,否则为false

在查看页面中,检查是否选中,请参见下面的代码

@foreach (var item in ViewBag.Features)
{
    <div class="form-group form-animate-checkbox col-md-4 col-sm-12">
        <input type="checkbox" class="checkbox Amenities" value="@item.ID" name="@item.Name" checked='@(item.selected?"checked":"")'>
        <label class="lblamenities">@item.Name</label>
    </div>
}
@foreach(ViewBag.Features中的变量项)
{
@项目名称
}

Yo需要设置每个复选框的
checked
值。但是您的代码是一种尝试绑定到模型的糟糕方式,并且永远不会提供真正的双向模型绑定或任何验证。使用包含属性
int-ID
string-Name
bool-IsSelected
的视图模型,以便您可以使用
@Html.CheckBoxFor()
绑定到
选定的
属性。例如,如果选中的
项的值为
trie
它将呈现
选中,请参阅这是错误的=“checked”
如果它的
为false
则呈现
为checked
,这两种情况都会导致复选框为checkedIt,这需要
您没有仔细查看代码。因为我在true中使用了三元运算符,所以它呈现checked=“checked”和false它呈现checked=”“没错。设置
checked
属性意味着其已选中(首先尝试代码!)尝试代码!它不起作用-
checked=“checked”
checked=“”
checked=“false”
checked=“任何东西”
都是一样的-它们设置了checked属性,并且复选框被选中!