私の 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}
}
私の見解では、読み取り用と編集用の2つのチェックボックスが必要です
@Html.CheckBoxFor(m => m.Type== ModeType.Read)
@Html.CheckBoxFor(m => m.Type== ModeType.Edit)
しかし、これにより、「テンプレートは、フィールド アクセス、プロパティ アクセス、単一次元配列インデックス、または単一パラメーターのカスタム インデクサー式でのみ使用できます」というエラーが表示されます。
モデルにさらに 2 つのプロパティを追加することで、この問題を回避しました。
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)
私がアプローチした方法が正しくないことはわかっています。これを達成するためのより良い方法があるはずです。誰かがこれについて私にアドバイスしてもらえますか。