Sql server 如何使用标识从SQL Server获取用户信息

Sql server 如何使用标识从SQL Server获取用户信息,sql-server,asp.net-core,asp.net-core-mvc,identity,asp.net-core-identity,Sql Server,Asp.net Core,Asp.net Core Mvc,Identity,Asp.net Core Identity,我正在使用ASP.NET核心MVC。我想从具有标识的SQL Server获取用户信息 这是我的管理员控制器: private ApplicationDbContext _application; public AdminController (ApplicationDbContext application) { _application = application; } public IActionResult ListUsers() { return View(_appli

我正在使用ASP.NET核心MVC。我想从具有标识的SQL Server获取用户信息

这是我的管理员控制器:

private ApplicationDbContext _application;
public AdminController (ApplicationDbContext application)
{
    _application = application;
}

public IActionResult ListUsers()
{
    return View(_application.Users.ToList());
}
我的看法是:

{
    <td>@Html.DisplayNameFor(model => model.Id)</td>
}
{
@DisplayNameFor(model=>model.Id)
}
但它向我展示了这个错误

“InvalidOperationException:传递到ViewDataDictionary的模型项的类型为“System.Collections.Generic.List
1[Microsoft.AspNetCore.Identity.Identity.IdentityUser]”,但此ViewDataDictionary实例需要类型为“System.Collections.Generic.IEnumerable
1[WebAppMVC.ApplicationUser]”的模型项


您的ApplicationUser是否从identityUser继承


检查视图响应是否与视图模型相同

这是一个工作演示,请检查您的差异并进行修改:

DbContext

看法

@model IEnumerable
@DisplayNameFor(model=>model.Id)
@DisplayNameFor(model=>model.UserName)
@DisplayNameFor(model=>model.FirstName)
@DisplayNameFor(model=>model.LastName)
@DisplayNameFor(model=>model.Email)
@foreach(模型中的var项目)
{
@DisplayFor(modeleItem=>item.Id)
@DisplayFor(modelItem=>item.UserName)
@DisplayFor(modelItem=>item.FirstName)
@DisplayFor(modelItem=>item.LastName)
@DisplayFor(modelItem=>item.Email)
编辑|
细节|
删除
}

Tnx.It可以工作。但当我想再次登录时,它会显示以下错误/invalidoOperationException:无法为“IdentityUser”创建数据库集,因为上下文的模型中不包含此类型。/@Mohadese99,您的数据库上下文和启动是什么?当扩展IdentityUser并使用
ApplicationUser
时,您应该更新您的id启动中的实体服务注册如下:
services.AddIdentity().AddEntityFrameworkStores().AddDefaultTokenProviders();
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
}
public class HomeController : Controller
{
    private readonly ApplicationDbContext _dbcontext;

    public HomeController( ApplicationDbContext dbcontext)
    {
        _dbcontext = dbcontext;
    }

    public IActionResult ListUsers()
    {
        return View(_dbcontext.Users.ToList());
    }
}
@model IEnumerable<MVCIdentityDemo3_1.Models.ApplicationUser>

<table class="table">
  <thead>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Id)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.UserName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.FirstName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.LastName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Email)
        </th>
        <th></th>
    </tr>
  </thead>
  <tbody>
    @foreach (var item in Model)
    {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Id)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.UserName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.FirstName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.LastName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Email)
        </td>
        <td>
            <a asp-action="Edit" asp-route-id="@item.Id">Edit</a> |
            <a asp-action="Details" asp-route-id="@item.Id">Details</a> |
            <a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
        </td>
    </tr>
    }
  </tbody>
</table>