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

时间:2015-12-10 15:42:01

标签: c# asp.net-mvc asp.net-identity

对下面这些用户角色的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>
}

1 个答案:

答案 0 :(得分:3)

将您的控制器代码修改为

Intent anIntent; anIntent = new Intent(this,Chek.class); for (Product p : products) { if(p.box); anIntent.putParcelableArrayListExtra("products", products);} startActivity(anIntent); break;

如果您这样做,则需要将视图中的演员表更改为:

Arraylist<Product> checkedList = new ArrayList<Product>();

for (Product p : products) {
    if(p.box)
{

checkedlist.add(p);

}
}// end of for loop


// Now send the checkedlist as parceable list

anIntent.putParcelableArrayListExtra("products", checkedlist);}
startActivity(anIntent);

将视图代码更改为:

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

因为这意味着对控制器代码没有任何更改。