我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>'