将枚举绑定到复选框

时间:2018-06-11 07:34:08

标签: c# asp.net-mvc

我正在开发asp.net MVC项目。我需要将枚举列表绑定到复选框,我有枚举列表,其中包含所有枚举和其他列表,仅包含选定的枚举。我返回包含这两个列表的模型。如何将其绑定到视图。我实现了代码,但它没有工作

public List<KioskOnboaringConfigurationFactors> SelectedKioskOnboaringConfigurationFactorsList { get; set; }

    public List<KioskOnboaringConfigurationFactors> AllKioskOnboaringConfigurationFactors { get; set; }



    @foreach (var g in Model.AllKioskOnboaringConfigurationFactorsList)
    {
        <li>
            <input type="checkbox"

                   @{if (Model.KioskOnboaringConfigurationFactorsList.Contains(g)) { <text> checked='checked' </text>  } } />
            <label >@g.ToString()</label>
        </li>
    }

1 个答案:

答案 0 :(得分:0)

首先,您不需要将所有枚举值存储在列表中,您可以使用Enum.GetValues

其次,您可以使用CheckBox HTML帮助程序。

@foreach (var g in Enum.GetValues(typeof(KioskOnboaringConfigurationFactors)).Cast<KioskOnboaringConfigurationFactors>())
{
    <li>
        @Html.CheckBox(g.ToString(), Model.SelectedKioskOnboaringConfigurationFactorsList.Contains(g))
        <label>@g.ToString()</label>
    </li>
}