Asp.Net MVC 5具有键&#39; UserId&#39;的ViewData项。属于&#39; System.String&#39;但必须是&#39; IEnumerable <selectlistitem>&#39; </selectlistitem>

时间:2014-08-09 13:10:24

标签: asp.net-mvc asp.net-mvc-5

我想在下拉列表中列出用户,这是我的控制器:

    var user = db.Users.Where(e => e.Roles.All(r => r.RoleId != "1"))
    .OrderBy(e => e.UserName);
    ViewBag.UserId = new SelectList(user,"Id", "UserName");
    return View();

这是我的观点:

@Html.DropDownList("UserId", null, htmlAttributes: new { @class = "form-control" })

我可以在下拉列表中显示用户,但是当我尝试发布某些内容时,ModelState无效且会出错。

1 个答案:

答案 0 :(得分:2)

SelectListViewBag的{​​{1}}名称与您正在编辑的媒体资源相同。将其更改为ViewBag.UserIdChoices,您就可以了。