6

私の 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)

私がアプローチした方法が正しくないことはわかっています。これを達成するためのより良い方法があるはずです。誰かがこれについて私にアドバイスしてもらえますか。

4

1 に答える 1