2010-05-01 3 views
0

J'ajoute le fournisseur Roles à BuiltModel intégré, mais j'ai des problèmes pour ajouter GetAllRoles dans ma vue en utilisant le Register View Model.Roles Provider - AccountModel

Voir modèle de AccountModel

public class RegisterModel 
    { 
     UserName, Email Etc.... 

     [Required] 
     [DisplayName("AllRoles")] 
     public SelectList AllRoles { get; set; } 
    } 

rôles service ajouté à AccountModel

public interface IRolesService 
{ 
    SelectList GetAllRoles(); 
} 

    public class RolesService : IRolesService 
{ 
    public SelectList GetAllRoles() 
    { 
     var AllRoles = new SelectList(Roles.GetAllRoles()); 
     return AllRoles; 
    } 
} 

Inscription Voir la page Hérite RegisterModel

  Form... 

      <div class="editor-label"> 
       <%= Html.LabelFor(m => m.ConfirmPassword) %> 
      </div> 
      <div class="editor-field"> 
       <%= Html.PasswordFor(m => m.ConfirmPassword) %> 
       <%= Html.ValidationMessageFor(m => m.ConfirmPassword) %> 
      </div> 

      <%= Html.DropDownListFor(m => m.AllRoles)%> 

Je ne sais pas comment remplir la liste DropDown avec tous les rôles du modèle View.

Toute aide serait vraiment géniale !!

+0

Cela devrait fonctionner. Quelle est l'erreur que vous obtenez? – Amitabh

+0

J'ai ajouté mon code au message ci-dessous et maintenant j'ai l'erreur ... Utilisez le mot-clé Nouveau pour créer l'instance – Jemes

Répondre

0

Je pense que vous avez besoin de propriétés pour le rôle sélectionné et la liste complète des rôles. La liste des rôles sera utilisée pour remplir la liste déroulante, le rôle sélectionné sera renseigné sur le poste avec la valeur sélectionnée.

public class RegisterModel 
{ 
    UserName, Email Etc.... 

    [Required] 
    [DisplayName("Role")] 
    public string Role { get; set; } 

    [ScaffoldColumn(false)] 
    public SelectList AllRoles { get; set; } 
} 

... 
public ActionResult Register() 
{ 
    var roleService = new RoleService(); 
    var model = new RegisterModel 
    { 
      AllRoles = roleService.GetAllRoles(), 
      // Role = "User" if you want to choose a default 
    } 

    return View(model); 
} 


<div class="editor-label"> 
    <%= Html.LabelFor(m => m.ConfirmPassword) %> 
</div> 
<div class="editor-field"> 
    <%= Html.PasswordFor(m => m.ConfirmPassword) %> 
    <%= Html.ValidationMessageFor(m => m.ConfirmPassword) %> 
</div> 

<%= Html.DropDownListFor(m => m.Role, Model.AllRoles, "--select--", null)%> 
+0

Cela a du sens bien que j'obtiens l'erreur suivante à mon avis pour le code HTML.DropDownListFor .. Utilisez le mot-clé New pour créer l'instance. – Jemes

+0

@Jemes - Essayez de l'utiliser sans '' --selection-- ", null' et voyez si vous avez toujours l'erreur. – tvanfosson

+0

Didnt travail toujours eu la même erreur. – Jemes

Questions connexes