我最近开始研究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>
答案 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");
}