【发布时间】:2020-05-08 21:08:44
【问题描述】:
我最近开始学习 ASP Net Core。我从 Web 表单 Razor 页面开始。说到重点,我制作了一个连接到 Identity 数据库的表。它包含数据库内部 AspNetUsers 表中的用户名和电子邮件。到目前为止一切都很好。我正在尝试向表中添加删除功能,以便可以使用删除功能删除注册用户。我尝试了一些东西,但我不知道我要去哪里错了。如果有人可以帮助我,我会很高兴,因为我正在为此苦苦挣扎一段时间。我将粘贴代码,也许有人可以提醒我。我正在尝试将删除函数用作 OnPost,它将通过 asp-page-handler 连接到表。谁能告诉我哪里出错了?
.cshtml
@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>
.cshtml.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");
}
}
}
【问题讨论】:
标签: asp.net-core razor project identity