many-to-many
という名前のメニュー モデルにフィールドがあり、モデルRoles
の「作成」ビューを作成しようとしています。
私の作成アクションメソッド:
public ActionResult Create()
{
ViewBag.ParentMenuId = new SelectList(_db.Menus, "Id", "Name");
ViewBag.Roles = new SelectList(_db.UserRoles.ToList(), "Id", "Name");
return View();
}
[HttpPost]
public ActionResult Create(Menu menu)
{
if (ModelState.IsValid)//the state is always **invalid**
{
_db.Menus.Add(menu);
_db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.ParentMenuId = new SelectList(_db.Menus, "Id", "Name", menu.ParentMenuId);
return View(menu);
}
私のビュー(Create.cshtml):
<div class="editor-label">
@Html.LabelFor(model => model.Roles, "Roles")
</div>
<div class="editor-field">
@Html.ListBox("Roles")
@Html.ValidationMessageFor(model => model.Roles)
</div>
それを修正する方法は?次のエラーが表示されます。
The ViewData item that has the key '' is of type '' but must be of type 'IEnumerable<SelectListItem>'