我正在尝试在用户索引上显示自定义用户属性的内容。
我添加了已存在于数据库中的employee_id
和name
,我节省了用户创建。
问题是当列出用户时我无法访问这些属性。
我已经关注ApplicationUser
班级:
public class ApplicationUser : IdentityUser
{
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
public string employee_id { get; set; }
public string name { get; set; }
}
这是控制器:
private IdentityDbContext identityDb = new IdentityDbContext();
//GET: /Account/Index
[Authorize(Roles = "Admin")]
public ActionResult Index()
{
var users = identityDb.Users.Include(u => u.Roles).ToList();
return View(users);
}
这是视图:
@model IEnumerable<Microsoft.AspNet.Identity.EntityFramework.IdentityUser>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
Email
</th>
<th>
Employee Id
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
<td>
@Html.DisplayFor(modelItem => item.employee_id)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
@Html.ActionLink("Details", "Details", new { id=item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Id })
</td>
</tr>
}
</table>
电子邮件按预期显示,但在添加employee_id
时,它在Visual Studio上被标记为不存在。
如何使自定义属性可访问,以便我可以在索引上列出它们?
答案 0 :(得分:1)
改变这个:
@model IEnumerable<Microsoft.AspNet.Identity.EntityFramework.IdentityUser>
对此:
@model IEnumerable<YourNamespace.ApplicationUser>