CheckBoxList para tipos Enum MVC Razor
No meu aplicativo c # .net MVC eu gostaria de exibir a lista de checkbox para tipos Enum.
Eu tenho um tipo de enum
[Flags]
public enum ModeType
{
Undefined = 0,
Read= 1,
Edit= 2
}
e meu modelo é
Public TrainingModel
{
public int UserID {get;set;}
public ModeType Type {get;set}
}
Na minha opinião eu preciso de dois checkbox one para Read e outro para Edit Então eu tentei
@Html.CheckBoxFor(m => m.Type== ModeType.Read)
@Html.CheckBoxFor(m => m.Type== ModeType.Edit)
Mas isso me dá um erro "Os modelos podem ser usados apenas com acesso de campo, acesso a propriedades, índice de matriz de dimensão única ou expressões de indexador personalizado de parâmetro único."
Eu trabalhei em torno deste problema, adicionando mais duas propriedades ao meu modelo
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;}
}
}
e, em seguida, fazendo a minha opinião
@Html.CheckboxFor(m => m.IsRead)
@Html.CheckboxFor(m => m.IsEdit)
Eu sei que a maneira que eu tenho abordado não é correta e deve haver uma maneira melhor de conseguir isso. Alguém poderia por favor me avisar sobre isso.