私は見解を持っています。ビューのi'vemonthsフィールド(データベースのnvarcharタイプ):
@Html.DropDownListFor(model => model.rent_month,
(IEnumerable<SelectListItem>)ViewBag.months)
モデルクラス(PostManager)に、次のような月のリストを生成するメソッドがあります。
public IEnumerable<SelectListItem> GetMyMonthList()
{
return CultureInfo.CurrentCulture.DateTimeFormat.MonthNames
.Select(m => new SelectListItem() { Text = m, Value = m });
}
私は行動を起こすのに何ヶ月もかかります:
public ActionResult Create()
{
PostModel p = new PostModel();
ViewBag.months = pm.GetMyMonthList();
return View(p);
}
私のモデルでは、私の月の属性:
[Required(ErrorMessage = "You Must Select a Month.")]
[Display(Name = "Select Rent Month")]
public string rent_month { get; set; }
ポストアクションで:
public ActionResult Create(PostModel p)
{
if (ModelState.IsValid)
{
post post = new Models.DB.post();
post.rent_month = p.rent_month;
db.posts.AddObject(post);
db.SaveChanges();
}
}
ドロップダウンリストに月が正しく生成されますが、フォームを送信するとエラーが発生します:
キー「rent_month」を持つViewDataアイテムのタイプは「System.String」ですが、タイプは「IEnumerable」である必要があります。
さて、このエラーの解決策は何ですか...事前に感謝します...