2017-02-13 6 views
0

このシナリオを検討してください。ビジネスドメインによっては、コンボボックスまたはラジオボタンとして実装できる単純で一定したオプションがいくつかあります。例えばコントローラ内の値のデコードまたはMVCでのビュー

ステータスコンボボックスについては、このサンプルを検討:クラスのタイプListの我々は、静的メソッド(またはプロパティ)を作成し、この基本情報については

(Bad , 1), 
(Medium , 2), 
(Good , 3), 
(Well , 4) 

をして、このシンプルかつ一定のため、我々は保存されませんでしたそれらをデータベースに格納します。

ここで、読み取り専用ビューを作成し、モデルではStatusIDを使用しますが、このIDをデコードしてテキストを表示する必要があります。私は(私の不完全な情報に基づいて)2溶液を知っている:

  1. のviewmodelを作成し、私の静的メソッド

  2. を使用して、それにして私のコントロールデコードStatusIDStatusTextプロパティを追加表示するには、私のモデルを渡すをし、デコードしてください。

このようなシナリオのベストプラクティスを知りたいと思います。

どうもありがとう

+3

なぜ「enum」を使用しないのですか? –

+0

@StephenMuecke申し訳ありません。enumではないので、Key-Valueのペアを表示したいです。 – Arian

+0

私はその列挙型ではないことを知っています。私はなぜenumを使わないのかを尋ねています(それをはるかに簡単にします) –

答えて

2

私はEnumとしてそれらを作り、ビュー@Html.EnumDropDownListFor(m=>m.StatusId, m=> m.MyEnum)に使用します。

カスタム表示ラベルを使用する場合は、enumメンバーにDisplayAttributeを使用します。

更新

あなただけのラベルの値を表示したい場合は、私はまだEnumとビューでを使用することをお勧めします:<div>(@Model.Status.ToString() , @((int)Model.Status))</div><div>は、必要な要素に置き換えることができます。

+0

私はそれが 'DropDownList'を作成すると思っていますが、私はちょうど' Label' – Arian

関連する問題