没有具有'UserName'键的'IEnumerable'类型的ViewData项。 在视图中有2个下拉列表 - 对于用户和角色,提交后我需要为选择的用户保存角色。与角色一切都好,但用户的麻烦。我有列表中的用户列表,但我不能读取数据库。如果使用Html.TextBox(“用户名”) - 它的作品,但管理员将手动写入用户名,这是不好的。 我不是MVC的专家,所以apreciate任何帮助。 控制器:没有类型为'IEnumerable <SelectListItem>'的ViewData项具有'UserName'键'
UsersContext db = new UsersContext();
public ActionResult Index()
{
SelectList list = new SelectList(Roles.GetAllRoles());
ViewBag.Roles = list;
List<SelectListItem> items = new List<SelectListItem>();
foreach (var user in db.UserProfiles.ToList())
{
SelectListItem li = new SelectListItem
{
Value = user.UserName,
Text = user.UserName
};
items.Add(li);
}
ViewBag.UserName = items;
return View(db.UserProfiles.ToList());
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(string RoleName, string UserName)
{
SelectList list = new SelectList(Roles.GetAllRoles());
ViewBag.Roles = list;
return View();
}
模型SimpleMembershipprovider,是与项目创建的。
查看:
@model IEnumerable<UserProfile>
@Html.DropDownList("UserName", ViewBag.UserName as SelectList) - here mistake
我应该怎么做来解决?