2010-05-11 69 views

回答

4

(1)在創建控制器中的Selectlist刪除管理員ListItem

SelectList sl = new SelectList(Roles.GetAllRoles(), "roleName") 
//remove items as needed 
ViewData["roleName"] = sl; 

或(2)通過GetAllroles()收集步驟,如果是管理員角色不添加的角色。

+0

感謝名單,我使用的MVC 1.0,所以我的代碼是 <%= Html.DropDownList( 「roleName」)%>和代碼是 ViewData [「roleName」] = new SelectList(Roles.GetAllRoles(),「roleName」); 可以請你告訴如何做第1步? – FosterZ 2010-05-11 16:36:47

+0

我更新了上面的選項一與MVC相關 – Glennular 2010-05-11 16:53:03

1

嘗試在提供程序類型上創建擴展方法並打包調用。這將允許您稍後在需要時添加其他條件。

public static class RolesExtension 
{ 
    public static string[] GetAllNonAdminRoles(this RoleProvider providerInstance) 
    { 
     return (from role in providerInstance.GetAllRoles() 
       where !role.Equals("Admin", StringComparison.InvariantCultureIgnoreCase) 
       select role).ToArray(); 
    } 
} 

而不是...

System.Web.Security.Roles.GetAllRoles(); 

調用此...

System.Web.Security.Roles.Provider.GetAllNonAdminRoles();