如何在MVC中对用户角色列表进行排序

本文关键字:列表 角色 排序 用户 MVC | 更新日期: 2023-09-27 18:26:18

对用户角色的SelectList进行排序的最佳方法是什么?我希望角色名称按字母顺序显示。

这是我的控制器代码:

ViewBag.RoleId = new SelectList(await RoleManager.Roles.ToListAsync(), "Name", "Name");

这是我的视图代码:

@foreach (var item in (SelectList)ViewBag.RoleId)
    {
        input type="checkbox" name="SelectedRoles" value="@item.Value" class="checkbox-inline" />
    }

更新-工作代码:

控制器:

var getRoles = await RoleManager.Roles.ToListAsync();
ViewBag.Roles = getRoles.OrderBy(x => x.Name);

视图:

@foreach (var item in ViewBag.Roles)
{
    <input type="checkbox" name="SelectedRoles" value="@item.Name" class="checkbox-inline" />
    <label for="@item.Name" class="control-label">@item.Name</label>
}

如何在MVC中对用户角色列表进行排序

将控制器代码修改为

ViewBag.RoleId = new SelectList(await RoleManager.Roles.ToListAsync(), "Name", "Name").OrderBy(x => x.Text);

如果你这样做,那么你需要将你视野中的演员阵容更改为:

@foreach (var item in (IEnumerable<SelectListItem>)ViewBag.RoleId)

简单地将视图代码更改为可能更容易

@foreach (var item in ((SelectList)ViewBag.RoleId).OrderBy(x => x.Text))
{
    input type="checkbox" name="SelectedRoles" value="@item.Value" class="checkbox-inline" />
}

因为这意味着控制器代码没有变化。