Недавно начал изучать ASP Net Core. Я начал с веб-форм Razor Pages. Чтобы перейти к сути, я сделал таблицу, которая подключена к базе данных Identity. Он содержит имя пользователя и адрес электронной почты из таблицы AspNetUsers из базы данных. Все хорошо до сих пор. Я пытаюсь добавить в таблицу функцию удаления, чтобы можно было удалить зарегистрированных пользователей с помощью функции удаления. Я что-то пробовал, но не знаю, где ошибаюсь. Если кто-нибудь может мне помочь, я буду очень рад, так как я уже некоторое время борюсь с этим. Я вставлю код и, может быть, кто-нибудь предупредит меня. Я пытаюсь использовать функцию удаления как OnPost, который будет подключен к таблице с помощью asp -page-handler. Может ли кто-нибудь сказать мне, где я ошибаюсь?
.cs html
@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>
.cs html .cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;
namespace ProiectLicenta.Pages.Userlist
{
public class IndexModel : PageModel
{
private readonly UserManager<IdentityUser> _userManager;
public IndexModel(UserManager<IdentityUser> userManager)
{
_userManager = userManager;
}
public List<IdentityUser> UserList { get; set; }
public void OnGet()
{
UserList = _userManager.Users.ToList();
}
public async Task<ActionResult> OnPostDel(string id)
{
UserList = _userManager.Users.ToList();
var User = await _userManager.FindByIdAsync(id);
if (User != null)
{
IdentityResult result = await _userManager.DeleteAsync(User);
}
return RedirectToPage("Index");
}
}
}