ASP.NET MVC 5 でドロップダウンリストを使用する – Enum 編

ASP.NET MVC で、ドロップダウンリストを使用する方法について調べた結果をまとめてみました。

前回 (ViewModel 編)ではビューモデルを作成して、それを元にドロップダウンの選択肢を作成しました。
今回は Enum 編ということで、Enum から選択肢を作成し、Html.EnumDropDownListFor メソッドを使用してドロップダウンリストを描画します。

環境

Windows 8.1 Home Edition
Visual Studio Community 2015 Update 2
ASP.NET MVC 5.2.3

目的

月を選択するドロップダウンリストを表示する。
ドロップダウンリストは初期表示時は未選択状態で、必須入力とする。

手順

■ Enum とビューモデルの作成

まず以下の 2 つのモデルを作成します。

  • 月の選択肢の元となる Enum
  • ページ全体を表すビューモデル

Months の各要素には DisplayAttribute.Name プロパティで表示用の文字列を設定しています。(※ [Display(Name = “○月”] と記述している部分です。)

EnumDropDownListViewModel のMonth プロパティですが、型を Months にすると初期値が 0 になってしまうため、必須入力という部分を実現できません。その為、型を Months? として nullable にし、 RequiredAttribute で必須入力にしています。

■ コントローラーの作成

コントローラーには、以下のメソッドを定義しています。

  • GET 用の Create メソッド
  • POST 用の Create メソッド

ViewModel 編と違って、コントローラー側では選択肢を生成するような処理は書いていません。

■ ビューの作成

ビューでは、Html.EnumDropDownListFor メソッドを使用して、ドロップダウンリストを出力します。

結果

以下のように、ドロップダウンリストが出力されます。

DropDownList_Enum_1

DropDownList_Enum_2

 

必須入力にもなっています。
DropDownList_Enum_3

 

Tk2

Tk2 has written 12 articles

映画とかゲームとかが好きです。
最近 Java をやりだし、悪戦苦闘中。
(→二度と Java やりたくないと決意。)
はやく引退して悠々自適な生活したい。

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">