2016-10-09 1 views
0

lorsque je crée une liste déroulante dans l'identité Tabel AspNetRole avec ce codeensembles d'objets multiples par type ne sont pas pris en charge lorsque je crée une liste déroulante

IdentityConfig.cs

public class ApplicationRoleManager : RoleManager<IdentityRole> 
{ 
    public ApplicationRoleManager(IRoleStore<IdentityRole, string> roleStore) 
     : base(roleStore) 
    { 
    } 

    public static ApplicationRoleManager Create(IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context) 
    { 
     return new ApplicationRoleManager(new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>())); 
    } 
} 

Startup.Auth.cs:

app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create); 

.

.private ApplicationRoleManager _roleManager; 
public ApplicationRoleManager RoleManager 
{ 
    get 
    { 
     return _roleManager ?? HttpContext.GetOwinContext().Get<ApplicationRoleManager>(); 
    } 
    private set 
    { 
     _roleManager = value; 
    } 
} 
contrôleur

:

 [AllowAnonymous] 
    public ActionResult Register() 
    { 
     ViewBag.name = new SelectList(db.Roles, "RoleID", "RoleName"); 

     return View(); 
    } 

Vue:

<div class="form-group"> 
    <label>نقش</label> 
    <div class="col-md-10"> 
     @Html.DropDownList("name", null, htmlAttributes: new { @class = "form-control" }) 
    </div> 
</div> 

il me montre cette erreur:

enter image description here

Comment puis-je résoudre cela?

/********************************************* ********************************************** */

+0

me montrer cette erreur: 'DataBinding: 'System.Data.Entity.DynamicProxies.IdentityRole_9C239D4C47FAFC45E921B1820B5C41AF0EB067AE64D4B8640EE82A0D5F0D4504' ne contient pas une propriété avec le nom "RoleID". – Kianoush

Répondre

2

contrôleur

[AllowAnonymous] 
public ActionResult Register() { 
    ViewBag.Roles = new SelectList(db.Roles.ToList(), "Id", "Name"); 

    return View(); 
} 

OU

[AllowAnonymous] 
public ActionResult Register() { 
    var roles = db.Roles.Select(r => new { RoleID = r.Id, RoleName = r.Name}).ToList(); 
    ViewBag.Roles = new SelectList(roles, "RoleID", "RoleName"); 

    return View(); 
} 

Vue:

<div class="form-group"> 
    <label>نقش</label> 
    <div class="col-md-10"> 
     @Html.DropDownList("SelectedRole", (IEnumerable<SelectListItem>)ViewBag.Roles, htmlAttributes: new { @class = "form-control" }) 
    </div> 
</div> 
+0

no. il montre l'erreur à moi encore – Kianoush

+0

vous êtes mon herrrrrrrrrrrrrrrrrrr merci agin :)))) – Kianoush

2

essayer avec ce code, change

ViewBag.name = new SelectList(db.Roles.ToList(), "RoleID", "RoleName"); 

et votre dropdownlist

@Html.DropDownList("name", (IEnumerable<SelectListItem>)ViewBag.name, htmlAttributes: new { @class = "form-control" }) 
+0

montrez-moi cette erreur: 'DataBinding: 'System.Data.Entity.DynamicProxies.IdentityRole_9C239D4C47FA FC45E921B1820B5C41AF 0EB067AE64D4B8640EE8 2A0D5F0D4504' ne contient pas une propriété avec le nom 'RoleID'.' – Kianoush

+1

Je pense , Dans la table AspNetRole contient deux colonnes comme Id, Nom –