【发布时间】:2016-05-03 17:26:46
【问题描述】:
我得到了这个东西,但是我想采用不同的方法,因为当用户只有一个角色时,表格缺少行。我在网站上有 3 个角色:用户、超级用户和管理员。
这是我的控制器:
public ActionResult UserList()
{
var userRoles = new List<RolesViewModel>();
var context = new ApplicationDbContext();
var userStore = new UserStore<ApplicationUser>(context);
var userManager = new UserManager<ApplicationUser>(userStore);
foreach (var user in userStore.Users)
{
var r = new RolesViewModel
{
UserName = user.UserName
};
userRoles.Add(r);
}
foreach (var user in userRoles)
{
user.RoleNames = userManager.GetRoles(userStore.Users.First(s => s.UserName == user.UserName).Id);
}
return View(userRoles);
}
这是我的 RolesViewModel:
public class RolesViewModel
{
public IEnumerable<string> RoleNames { get; set; }
public string UserName { get; set; }
}
还有观点:
<table class="table table-hover">
<tr>
<th>
@Html.DisplayNameFor(model => model.UserName)
</th>
<th>
Role 1
</th>
<th>
Role 2
</th>
<th>
Role 3
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.UserName)
</td>
@foreach (var role in item.RoleNames)
{
<td>
@Html.DisplayFor(modelItem => role)
</td>
}
</tr>
}
</table>
所以在我获得角色 1 角色 2 和角色 3 的表格中,我希望用户超级用户和管理员为每个用户提供一个模型,但我无法真正让它工作,我该如何以最好的方式实现这一点?
【问题讨论】:
-
不清楚你想要的输出是什么。当用户仅包含 1 个或 2 个角色时,您需要额外的空单元格吗?
-
@StephenMuecke 是的,我希望能够决定每个角色将进入哪个单元,所以我猜我需要更多模型等
-
这是当前代码imgur.com/URMGV16的样子@
-
您需要修改控制器方法以使用 3 个值(如果角色不存在则为空字符串)填充您的 Roles 属性,并且它们需要按顺序排列。
-
@StephenMuecke 是的,我想我必须做这样的事情,只是想弄清楚如何......我在 asp 和 c# 方面还差得很远,哈哈,我正在努力学习
标签: c# asp.net asp.net-mvc user-controls roles