2010-05-11 6 views

Répondre

4

(1) Après avoir créé le Selectlist dans le contrôleur retiré Admin ListItem

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

Or (2) pas dans la collection GetAllroles() et ne pas ajouter le rôle si elle est le rôle de l'administrateur.

+0

Thanx, j'utilise mvc 1.0 si mon code est <% = Html.DropDownList ("roleName")%> et le code de conrtoller est ViewData ["roleName"] = new SelectList (Roles.GetAllRoles(), "roleName"); pouvez-vous s'il vous plaît dire comment faire l'étape 1? – FosterZ

+0

J'ai mis à jour l'option un ci-dessus pour être lié à MVC – Glennular

1

Essayez de créer une méthode d'extension sur le type de fournisseur et encapsulez l'appel. Cela vous permettra d'ajouter des critères supplémentaires plus tard si nécessaire.

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(); 
    } 
} 

Au lieu de ...

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

Appelez ce ...

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