Keh*_*mme 2 c# asp.net-mvc enums flags razor
我有Enum一些标志代表一周的日子,有一些额外的值表示工作日,周末,每天或没有日子.
这是Enum:
[Flags]
public enum DayOfWeek : short
{
Sunday = 1,
Monday = 2,
Tuesday = 4,
Wednesday = 8,
Thursday = 16,
Friday = 32,
Saturday = 64,
Weekday = 62,
Weekend = 65,
Everyday = 127,
None = 0
}
Run Code Online (Sandbox Code Playgroud)
我还有一个带有属性的View Model,DayOfWeek其类型为DayOfWeek.
在我的视图中,我需要为一周中的每一天创建一个复选框,并根据保存的日期以某种方式适当地检查框.
我怎样才能做到这一点?
我找到了一个好的解决方案
这是我想出的:
@foreach (DayOfWeek item in Enum.GetValues(typeof(DayOfWeek)))
{
if (0 < item && (item <= DayOfWeek.Friday || item == DayOfWeek.Saturday))
{
@Html.Label("DayOfWeek", item.ToString())
@Html.CheckBox("DayOfWeek", (Model.DayOfWeek.HasFlag(item)), new { value = item })
}
}
Run Code Online (Sandbox Code Playgroud)
循环中的条件语句是确保仅显示实际天数.
这适用于我的目的,并且该概念可以轻松应用于其他枚举.具体实施需要一些改变,但你明白了.