さまざまなアーティファクトのコードを以下に示します。
実在物
public class ChooseFirst
{
public int ChooseFirstId { get; set; }
public string ChooseFirstName { get; set; }
}
モデルを見る
public class SelectViewModel
{
public IEnumerable<SelectListItem> ListChooseFirst { get; set; }
}
コントローラ/取得アクション
//
// GET: /MenuOne/
public ActionResult MenuOne()
{
var selectViewModel = new SelectViewModel
{
ListChooseFirst = ChooseFirstList()
};
return View(selectViewModel);
}
private IEnumerable<SelectListItem> ChooseFirstList()
{
//here data comes from database
List<ChooseFirst> list = _getFComboService.GetFComboList();
List<SelectListItem> items = new List<SelectListItem>();
foreach (ChooseFirst chooseFirst in list)
{
SelectListItem item = new SelectListItem();
item.Text = chooseFirst.ChooseFirstName;
item.Value = chooseFirst.ChooseFirstId.ToString();
items.Add(item);
}
return items;
}
HTML ビュー
@Html.DropDownList("FCombo", Model.ListChooseFirst, "--Select One--")
フォームを投稿すると、「selectViewModel」の値が NULL になるという問題が発生しました。バインダーをモデル化する必要はありますか。モデル バインダーを作成する方法を提案してください。
//
// POST: /MenuOne/
[HttpPost]
public ActionResult MenuOne(SelectViewModel selectViewModel)
{
return View();
}