Как получить информацию о пользователе с сервера SQL с удостоверением личности - PullRequest
1 голос
/ 20 апреля 2020

Я использую ASP. NET Core MVC. Я хочу получить информацию о пользователе с SQL Сервера с удостоверением.

Это мой AdminController:

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

public IActionResult ListUsers()
{
    return View(_application.Users.ToList());
}

Мой просмотр:

{
    <td>@Html.DisplayNameFor(model => model.Id)</td>
}

, но он показывает мне эта ошибка.

"InvalidOperationException: элемент модели, переданный в ViewDataDictionary, имеет тип 'System.Collections.Generi c .List 1[Microsoft.AspNetCore.Identity.IdentityUser]', but this ViewDataDictionary instance requires a model item of type 'System.Collections.Generic.IEnumerable 1 [WebApp MVC .ApplicationUser]'.

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Вот рабочая демонстрация, проверьте разницу и внесите изменения:

DbContext

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>
1 голос
/ 20 апреля 2020

Ваш ApplicationUser наследует от identityUser?

Проверьте, совпадает ли ответ представления с моделью представления

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...