我首先使用了代码并将字段添加到数据库aspnetusers中,当您注册时,一切都可以工作并保存到数据库中。但是我无法在视图中显示新字段。我只能查看已经预加载了ASP的字段。名字在数据库中很好,不知道如何在视图中查看它。智能感知不会加载添加的字段
@model IEnumerable<MyProject.Models.ApplicationUser >
@{
ViewBag.Title = "Home Page";
}
<h2>Current users</h2>
<table class="table1" id="sort">
<tr>
<th>
@Html.ActionLink("Email:", "Index", new { sortOrder = ViewBag.AddressSortParm })
</th>
<th>
@Html.ActionLink("First Name:", "Index", new { sortOrder = ViewBag.StatusSortParm })
</th>
<th>
@Html.ActionLink("Role:", "Index", new { sortOrder = ViewBag.DateSortParm })
</th>
<th>
Owner Information:
</th>
<th></th>
</tr>
@foreach (var user in Model)
{
<tr>
<td>
@user.UserName
</td>
<td>
@user.FirstName
</td>
<td>
@user.Email
</td>
<td>
</td>
</tr>
}
我的控制器
ApplicationDbContext context = new ApplicationDbContext();
public ActionResult Index()
{
var context = new IdentityDbContext();
var users = context.Users.ToList();
return View(users);
}
此错误是因为视图的第一行引用的是 Microsoft.AspNet.Identity,而不是添加了 firstname 属性的视图模型。
@model IEnumerable<Microsoft.AspNet.Identity.EntityFramework.IdentityUser>
应更改为以下内容:
@model IEnumerable<ApplicationUser>
其中应用程序用户是类似的东西
public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
}
然后从操作中将用户作为应用程序用户返回。
或者,您可能只需要将 ViewModel 用作添加自定义属性的@model。