Ниже представлен код двух файлов - Index.cshtml и Index.cshtml.cs. Код для кнопки представлен в этих двух файлах. Также на изображении, приложенном к вопросу, находится страница Index.cshtml с таблицей, в которой хранится информация о кандидатах.
Код файла Index.cshtml:
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<table class="table">
<thead>
<tr>
<th scope="col">ID</th>
<th scope="col">ФИО</th>
<th scope="col">Дата рождения</th>
<th scope="col">Университет</th>
<th scope="col">Курс</th>
<th scope="col">Факультет</th>
<th scope="col">Контактный телефон</th>
<th scope="col">Email</th>
<th scope="col">О себе</th>
<th scope="col">Дата создания</th>
<th scope="col">Кем создано</th>
<th scope="col">Дата изменения</th>
<th scope="col">Кем изменено</th>
</tr>
</thead>
<tbody>
@foreach (var candidate in Model.Candidates)
{
<tr>
<td>@candidate.Id</td>
<td>@candidate.Name</td>
<td>@candidate.Date_of_Birth</td>
<td>@candidate.University</td>
<td>@candidate.University_course</td>
<td>@candidate.Faculty</td>
<td>@candidate.Phone_number</td>
<td>@candidate.Email</td>
<td>@candidate.About_myself</td>
<td>@candidate.Date_of_creation</td>
<td>@candidate.Creator</td>
<td>@candidate.Date_of_change</td>
<td>@candidate.Changer</td>
<td>link to edit,delete button</td>
<td>
<a asp-page="./Edit" asp-route-id="@candidate.Id">Edit</a>
<button type="submit" asp-page-handler="delete"
asp-route-id="@candidate.Id">
delete
</button>
</td>
</tr>
}
</tbody>
</table>
<a asp-page="./Create">Create</a>.
Код файла Index.cshtml.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;
namespace Candidates.Pages
{
public class IndexModel : PageModel
{
private readonly AppDbContext _db;
public IndexModel(AppDbContext db)
{
_db = db;
}
public IList<Candidate> Candidates { get; set; }
public async Task OnGetAsync()
{
Candidates = await _db.Candidates.AsNoTracking().ToListAsync();
}
public async Task<IActionResult> OnPostDeleteAsync(int Id)
{
var candidate = await _db.Candidates.FindAsync(Id);
if(candidate != null)
{
_db.Candidates.Remove(candidate);
await _db.SaveChangesAsync();
}
return RedirectToPage();
}
}
}