ASP Net Core 3.0 Web表单。使用身份,是否可以添加删除功能以删除用户?

时间:2020-05-08 21:08:44

标签: asp.net-core razor project identity

我最近开始研究ASP Net Core。我从Web表单Razor页面开始。为了说明这一点,我制作了一个连接到身份数据库的表。它包含用户名和数据库内部来自AspNetUsers表的电子邮件。一切都好,直到现在。我试图将删除功能添加到表中,以便可以使用删除功能删除注册用户。我尝试了一些东西,但我不知道我要去哪里错了。如果有人可以帮助我,我会很高兴,因为我现在已经为此苦苦挣扎了一段时间。我将粘贴代码,也许有人可以提醒我。我试图将delete函数用作OnPost,它将使用asp-page-handler连接到表。谁能告诉我我要去哪里错了?

.cshtml

.left-gutter

.cshtml.cs

  @page
@model ProiectLicenta.Pages.Userlist.IndexModel
@{
    ViewData["Title"] = "UserList";
}

<h1>UserList</h1>

<table class="table">
    <thead>
        <tr>
            <th>
                UserName
            </th>
            <th>
                Email
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        @for (var i = 0; i < Model.UserList.Count; i++)
        {
            <tr>
                <td>
                    @Model.UserList[i].UserName
                </td>
                <td>
                    @Model.UserList[i].Email
                </td>
                <td>
                    <a asp-action="Edit" asp-route-id="@Model.UserList[i].Id">Edit</a> |
                    <a asp-action="Details" asp-route-id="@Model.UserList[i].Id">Details</a> |
                    <a asp-page-handler="Del" asp-route-id="@Model.UserList[i].Id">Delete</a>
                </td>
            </tr>
        }
    </tbody>
</table>

1 个答案:

答案 0 :(得分:0)

<a>标记单击事件将发送Get请求,因此请使用OnGetDel而不是OnPostDel

public async Task<ActionResult> OnGetDel(string id)
{

    var User = await _userManager.FindByIdAsync(id);
    if (User != null)
    {
        IdentityResult result = await _userManager.DeleteAsync(User);
    }
    return RedirectToPage("Index");
}