从管理员角色的用户那里获取下拉列表的问题
Problem with getting dropdown list from users in role admin
你能帮我从 ViewBag
列表创建 Html.DropdownList
吗?
当我使用以下代码时出现错误,我无法将列表转换为 IEnumerable<SelectListItem>
var allUsers = db.Users.ToList();
var adminUsers = allUsers.Where(u => u.Roles.Select(r =>r.RoleId).Contains("1bafec08-fc36-41f6-a3f1-cc9a297e7481")).ToList();
ViewBag.Role = adminUsers;
这种显示方式不行:
@Html.DropDownList("PersonAssigned",(IEnumerable<SelectListItem>)ViewBag.Role, "Wybierz pracownika:", new { @class = "form-control" })
这也不是:
@Html.DropDownList("PersonAssigned", ViewBag.Role as SelectList, new { @class = "form-control" })
您需要在将其放入 ViewBag 之前创建一个 SelectList,例如:
ViewBag.Role = new SelectList(adminUsers,"RoleId","RoleName");
并且在您的 DropDownList 助手视图中使用:
ViewBag.Role as SelectList
假设 RoleName
是您 table 中的列名,否则您需要将您在 table 中的列名作为角色文本。
缺少所需类型的映射,同时考虑优化您的数据库查询
var roleId = Guid.Parse("1bafec08-fc36-41f6-a3f1-cc9a297e7481");
var adminUsers = db.Users.Where(x => x.Roles.Any(y => y.RoleId == roleId))
.ToList()
.Select(x => new SelectListItem()
{
Text = x.RoleName,
Value = x.RoleId
})
.ToList();
这将使该代码能够工作
@Html.DropDownList("PersonAssigned",(IEnumerable<SelectListItem>)ViewBag.Role, "Wybierz pracownika:", new { @class = "form-control" })
你能帮我从 ViewBag
列表创建 Html.DropdownList
吗?
当我使用以下代码时出现错误,我无法将列表转换为 IEnumerable<SelectListItem>
var allUsers = db.Users.ToList();
var adminUsers = allUsers.Where(u => u.Roles.Select(r =>r.RoleId).Contains("1bafec08-fc36-41f6-a3f1-cc9a297e7481")).ToList();
ViewBag.Role = adminUsers;
这种显示方式不行:
@Html.DropDownList("PersonAssigned",(IEnumerable<SelectListItem>)ViewBag.Role, "Wybierz pracownika:", new { @class = "form-control" })
这也不是:
@Html.DropDownList("PersonAssigned", ViewBag.Role as SelectList, new { @class = "form-control" })
您需要在将其放入 ViewBag 之前创建一个 SelectList,例如:
ViewBag.Role = new SelectList(adminUsers,"RoleId","RoleName");
并且在您的 DropDownList 助手视图中使用:
ViewBag.Role as SelectList
假设 RoleName
是您 table 中的列名,否则您需要将您在 table 中的列名作为角色文本。
缺少所需类型的映射,同时考虑优化您的数据库查询
var roleId = Guid.Parse("1bafec08-fc36-41f6-a3f1-cc9a297e7481");
var adminUsers = db.Users.Where(x => x.Roles.Any(y => y.RoleId == roleId))
.ToList()
.Select(x => new SelectListItem()
{
Text = x.RoleName,
Value = x.RoleId
})
.ToList();
这将使该代码能够工作
@Html.DropDownList("PersonAssigned",(IEnumerable<SelectListItem>)ViewBag.Role, "Wybierz pracownika:", new { @class = "form-control" })