@Thomd209

Не работает кнопка «delete», которая должна удалять кандидата из таблицы. Как сделать так, чтобы она работала?

5cea631d4e40a876121415.pngНиже представлен код двух файлов - 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();
        }
    }
}
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы