示例
Index.cshtml中添加Delete按钮
<td style="width:20%">
<a asp-controller="Persons" asp-action="Edit" asp-route-personId="@person.PersonId">Edit</a>
<a asp-controller="Persons" asp-action="Delete" asp-route-personId="@person.PersonId">Delete</a>
</td>
从Edit.cshtml拷贝一个Delete.cshtml,修改后内容如下
@model PersonResponse
@{
ViewBag.Title = "Delete Person";
}
<a asp-controller="Persons" asp-action="Index" class="link-hover">Back to Persons List</a>
<h2>Delete Person</h2>
<h3>Are you sure to delete this person?</h3>
<div class="center-box">
<form asp-controller="Persons" asp-action="Delete" method="post">
@*PersonId*@
<input asp-for="PersonId" type="hidden"/>
@*PersonName*@
<div class="form-field flex">
<div class="w-25">
<label asp-for="PersonName" class="form-label pt">Person Name</label>
</div>
<div class="flex-1">
<input asp-for="PersonName" class="form-input" disabled="disabled"/>
<span asp-validation-for="PersonName" class="text-red"></span>
</div>
</div>
@*Email*@
<div class="form-field flex">
<div class="w-25">
<label asp-for="Email" class="form-label pt"></label>
</div>
<div class="flex-1">
<input asp-for="Email" type="email" class="form-input" disabled="disabled"/>
<span asp-validation-for="Email" class="text-red"></span>
</div>
</div>
@*SubmitButton*@
<div class="form-field flex">
<div class="w-25">
</div>
<div class="flex-1">
<button class="button button-red-back">Delete</button>
<div asp-validation-summary="All" class="text-red"></div>
@if (ViewBag.Errors != null)
{
<div class="text-red ml">
<ul>
@foreach (string error in ViewBag.Errors)
{
<li class="ml">@error</li>
}
</ul>
</div>
}
</div>
</div>
</form>
</div>
PersonsController.cs中添加如下代码
[HttpGet]
[Route("[action]/{personId}")]
public IActionResult Delete(Guid? personId)
{
PersonResponse? personResponse = _personsService.GetPersonByPersonId(personId);
if (personResponse == null)
{
return RedirectToAction("Index");
}
return View(personResponse);
}
[HttpPost]
[Route("[action]/{personId}")]
public IActionResult Delete(PersonUpdateRequest personUpdateRequest)
{
if (personUpdateRequest == null)
{
return RedirectToAction("Index");
}
PersonResponse? personResponse = _personsService.GetPersonByPersonId(personUpdateRequest.PersonId);
if (personResponse == null)
{
return RedirectToAction("Index");
}
_personsService.DeletePerson(personUpdateRequest.PersonId);
return RedirectToAction("Index");
}
运行程序显示如下,可以编辑和删除
Gitee获取源码: