【发布时间】:2014-02-08 17:59:25
【问题描述】:
没有具有键“用户名”的“IEnumerable”类型的 ViewData 项。 在视图中有 2 个下拉列表 - 对于用户和角色,提交后我需要为选择的用户保存角色。有角色一切都很好,但用户有问题。我在列表中有用户列表,但我无法读取为 db 选择的内容。如果使用 Html.TextBox("UserName") - 它可以工作,但管理员会手动编写用户名,这不好。 我不是 MVC 方面的专家,所以感谢任何帮助。 控制器:
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();
}
Model是SimpleMembershipprovider,是用project创建的。
查看:
@model IEnumerable<UserProfile>
@Html.DropDownList("UserName", ViewBag.UserName as SelectList) - here mistake
我应该怎么解决?
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-4