使用 asp.net 身份删除 Razor 页面中的用户

DELETE Users in a Razor Page Using asp.net Identity

我想使用以下代码删除用户:

    private readonly UserManager<IdentityUser> userManager;

    public UserPage(UserManager<IdentityUser> userManager)
    {
        this.userManager = userManager;
    }

    public async Task<IActionResult> OnPostDelete(string id)
    {
        IdentityUser user = await userManager.FindByIdAsync(id);
        if(user != null)
        {
            var result = await userManager.DeleteAsync(user);
            if (result.Succeeded)
            {
                return RedirectToAction("UserPage");
            }
            else
            {
                foreach (IdentityError error in result.Errors)
                    ModelState.AddModelError("", error.Description);
            }
        }
        return Page();
    }

这是我的 cshtml 文件,我在其中收到错误消息:“Foreach 语句无法对 UserPage 类型的变量进行操作,因为 Userpage 不包含 'GetEnumerator' 的 public 实例或扩展定义”

<table class="table table-sm table-bordered">
<tr><th>ID</th><th>Name</th><th>Email</th></tr>
@foreach (IdentityUser user in *Model*)
{
    <tr>
        <td>@user.Id</td>
        <td>@user.UserName</td>
        <td>@user.Email</td>
        <td>
            <form asp-page-handler="Delete" asp-route-id="@user.Id" method="post">
                <button type="submit" class="btn btn-sm btn-danger">
                    Delete
                </button>
            </form>
        </td>
    </tr>
}

我该如何解决这个问题?提前致谢。

'UserPage' does not contain a public instance or extension definition for 'GetEnumerator'

foreach 语句用于遍历实现 System.Collections.IEnumerable 或 System.Collections.Generic.IEnumerable 接口的对象集合。

所以报错是因为*Model*的类型不是correct.You需要改成实现System.Collections.IEnumerable或System.Collections.Generic.IEnumerable接口的对象集合。