【发布时间】:2015-05-05 16:56:39
【问题描述】:
所以,我有一个标记的枚举:
[Flags]
public enum SiteVisibilityFlags : short
{
None = 0,
Corporate = 1,
Properties = 2,
Kiosk = 4
}
问题是,无论我设置什么,“无”总是正确的......无论如何。说我是这样设置的:
..., SiteVisibilityFlags = Enums.SiteVisibilityFlags.Corporate ...
然后尝试查看:
<dd>
@foreach (Enums.SiteVisibilityFlags svf in Enum.GetValues(typeof(Enums.SiteVisibilityFlags)))
{
@Html.CheckBox("SiteVisibilityFlags", (Model.SiteVisibilityFlags.HasFlag(svf)), new { value = svf, disabled = "disabled" })
@Html.Label("SiteVisibilityFlagsLabel", svf.ToString())
@:
}
</dd>
在这里,Model.SiteVisibilityFlags.HasFlag(svf) 对于“无”总是正确的,但不应该如此。在数据库中验证,值为'1'......但仍然检查无。我已经尝试了 Corporate、Properties 和 Kiosk 的单个和组合的每一种排列,复选框按预期工作,根据标志值检查和取消选中,但始终选中/true 'None'。
我错过了什么?
【问题讨论】:
-
根据这个stackoverflow.com/questions/7257409/… 也许我应该从'1'而不是'0'开始枚举?
-
[此链接有帮助.. ][1] [1]:stackoverflow.com/questions/7257409/… 必须以 '1' 而不是 '0' 开始我的枚举
标签: model-view-controller enums enum-flags