我在IdentityModel中添加了一些自定义字段到IdentityUser(例如名字)但是我在视图中访问这些字段时遇到了问题。它们已通过迁移添加到数据库中,我已将信息放入其中。
这是我的模特 -
public class ApplicationUser : IdentityUser
{
[Required]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required]
[Display(Name = "Surname")]
public string Surname { get; set; }
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;
}
}`
在视图中,我创建了一个表来查看此信息
<table class=" table table-bordered table-hover">
<tr>
<th class="c">
First Name
</th>
<th class="c">
Surname
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td class="c">
@item.FirstName
</td>
<td class="c">
@item.Surname
</td>
</tr>
}
我在视图页面的顶部调用了模型
@model IEnumerable<Microsoft.AspNet.Identity.EntityFramework.IdentityUser>
然而,这是我遇到错误的地方。对于@item。它无法识别我的自定义字段。我得到的具体错误是 -
'IdentityUser'不包含'FirstName'的定义,也没有扩展方法'FirstName'接受类型'IdentityUser'的第一个参数。
我不知道为什么会出现这个错误,如果有人能提供帮助,我将不胜感激。
谢谢
尝试将模型更改为自定义类:
@model IEnumerable<YourNamespace.ApplicationUser>