ドロップダウン リストを作成するには、ビュー モデルに 2 つのプロパティが必要です。選択した値を保持するスカラー プロパティと、表示する使用可能なアイテムのリストを含むコレクション プロパティです。
いつものように、ビューモデルを書くことから始めます:
public class MyViewModel
{
[Required]
[DisplayName("Role")]
public string SelectedRole { get; set; }
public IEnumerable<SelectListItem> Roles
{
get
{
return new[]
{
new SelectListItem { Value = "Author", Text = "Author" },
new SelectListItem { Value = "Underwriter", Text = "Underwriter" }
};
}
}
}
次に、このモデルをビューに渡すコントローラー アクション:
public class HomeController: Controller
{
public ActionResult Index()
{
var model = new MyViewModel();
return View(model);
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
return Content("Thanks for selecting role: " + model.SelectedRole);
}
}
最後に、対応する厳密に型指定されたビュー:
@model MyViewModel
@using (Html.BeginForm())
{
@Html.LabelFor(m => m.SelectedRole)
@Html.DropDownListFor( m => m.SelectedRole, Model.Roles, "-- Role --")
@Html.ValidationMessageFor(m => m.SelectedRole)
<button type="submit">OK</button>
}