在我的 c#.net MVC 应用程序中,我想显示枚举类型的复选框列表。
我有一个枚举类型
[Flags]
public enum ModeType
{
Undefined = 0,
Read= 1,
Edit= 2
}
我的模型是
Public TrainingModel
{
public int UserID {get;set;}
public ModeType Type {get;set}
}
在我看来,我需要两个复选框,一个用于读取,另一个用于编辑所以我尝试了
@Html.CheckBoxFor(m => m.Type== ModeType.Read)
@Html.CheckBoxFor(m => m.Type== ModeType.Edit)
但这给了我错误“模板只能用于字段访问、属性访问、单维数组索引或单参数自定义索引器表达式。”
我通过向我的模型添加另外两个属性来解决这个问题
Public TrainingModel
{
public int UserID {get;set;}
public ModeType Type {get;set}
public bool IsRead
{
get{Type.HasFlag(ModeType.Read);}
set{Type |=ModeType.Read;}
}
public bool IsEdit
{
get{Type.HasFlag(ModeType.Edit);}
set{Type |=ModeType.Edit;}
}
}
然后发表我的看法
@Html.CheckboxFor(m => m.IsRead)
@Html.CheckboxFor(m => m.IsEdit)
我知道我接近它的方式是不正确的,应该有更好的方法来实现这一点。有人可以给我建议吗。