ViewBag のビューに渡すリストがあります。
public ActionResult ContactUs()
{
List<SelectListItem> reasons = new List<SelectListItem>();
reasons.Add(new SelectListItem
{
Selected = true,
Text = "Billing/Payment question",
Value = "Billing/Payment question"
});
reasons.Add(new SelectListItem
{
Text = "Complaint",
Value = "Complaint"
});
ViewBag.reasons = reasons;
return View();
}
[HttpPost]
public ActionResult ContactUs(ContactUs form)
{
//some code
return View("ContactUs");
}
モデル:
[Required]
public String Reason { get; set; }
ビュー:
@model #####.ViewModels.ContactUs
@using (Html.BeginForm("ContactUs","Home", FormMethod.Post))
{
@Html.DropDownListFor(Model => Model.Reason, (IEnumerable<SelectListItem>) ViewBag.reasons);
}
ViewBag.reasons から dropdownlist 、おそらく DropDownList("reasons") (これを記述するより良い方法である必要があります) を作成し、選択した値をプロパティ String Reason としてモデルに渡す必要があります。DropDownList/DropDownListFor の使用について混乱しています。ありがとう!