【问题标题】:Enum value to checkbox C# MVC枚举值到复选框 C# MVC
【发布时间】:2016-03-13 21:44:19
【问题描述】:

我对 MVC 有点陌生,我对如何将枚举值设置为复选框有一些疑问。

这是我的枚举类示例:

public enum Area : int
{
    [EnumMember]
    [Description("AllAreas")]
    AllAreas = 0,

    [EnumMember]
    [Description("FirstArea")]
    FirstArea = 1,

    [EnumMember]
    [Description("SecondArea")]
    SecondArea = 2,

    [EnumMember]
    [Description("ThirdArea")]
    ThirdArea = 3
}

型号:

    [DataMember]
    public List<Area?> Area { get; set; }

HTML:

                    <div class="col-md-8">
                        <label>Areas: <span>*</span></label>
                        <input id="chkFirstArea" name="chkFirstArea" type="checkbox"/> First Area
                        <input id="chkSecondArea" name="chkSecondArea" type="checkbox"/> Second Area
                        <input id="chkThirdArea" name="chkThirdArea" type="checkbox"/> Third Area
                    </div>

我知道这是一个愚蠢的问题,但我很难弄清楚如何让它发挥作用。如果有人可以提供帮助,我将不胜感激:D

提前致谢。

【问题讨论】:

  • 不完全确定您在寻找什么,但检查一下它可能会有所帮助。 stackoverflow.com/questions/23946387/…
  • Enum.GetValues(typeof(Area)); ?
  • 这没有意义。你真正想做的是什么。如果要选择一个enum 值,请使用单选按钮列表或下拉列表。如果要选择多个值,请使用枚举上的 [Flags] 属性 - [Flags] public enum Area { None = 0, FirstArea = 1, SecondArea = 2, ThirdArea = 4, AllAreas = 7 }

标签: c# asp.net-mvc checkbox enums setvalue


【解决方案1】:

复选框和枚举不能很好地协同工作。一般来说,Radio 组更适合 Enums,而 Checkboxes 更适合布尔值。

如果我在你的位置,我会用三个布尔值替换区域列表:

public bool FirstArea { get; set; }
public bool SecondArea { get; set; }
public bool ThirdArea { get; set; }

并以简单的方式绑定复选框:

@Html.CheckBoxFor(model => model.FirstArea)
@Html.CheckBoxFor(model => model.SecondArea)
@Html.CheckBoxFor(model => model.ThirdArea)

第四个复选框('all')可以是一个独立的复选框,通过 JS 设置所有其他三个复选框。

【讨论】:

    猜你喜欢
    • 2014-12-21
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 2012-01-21
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多