Articles → ASP.NET CORE → Delete Records In Asp.Net Core
Delete Records In Asp.Net Core
Steps
- Add a delete button on the table.
- Add a confirm message on the delete button.
- Add delete handler.
Code
@page
@model BookManagementSystem.Pages.Books.BooksModel
@{
ViewData["Title"] = "Books";
}
<h1>Books</h1>
<form method="post">
<div class="col-4">
<a asp-page="Create" class="btn btn-info form-control text-white"> Create new book</a>
</div>
<div class="col-12 m-1">
@if (Model.Books.Count() > 0)
{
<table border="1">
<tr>
<th>
Name
</th>
<th>
Author
</th>
<th>
Edit
</th>
</tr>
@foreach (var item in Model.Books)
{
<tr>
<td>
@Html.DisplayFor(m => item.Name)
</td>
<td>
@Html.DisplayFor(m => item.Author)
</td>
<td>
<a asp-page="Edit" asp-route-id="@item.Id" class="btn btn-success">Edit</a>
<button asp-page-handler="Delete" asp-route-id="@item.Id" onclick="return confirm('Are you sure you want to delete?');" class="btn btn-danger">Delete</button>
</td>
</tr>
}
</table>
}
</div>
</form>
using BookManagementSystem.Model;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace BookManagementSystem.Pages.Books {
public class BooksModel: PageModel {
private readonly ApplicationDbContext _db;
public BooksModel(ApplicationDbContext db) {
this._db = db;
}
public IEnumerable < Book > Books {
get;
set;
}
public async Task OnGet() {
Books = await _db.Book.ToListAsync();
}
public async Task < IActionResult > OnPostDelete(int id) {
Book MyBook = await _db.Book.FindAsync(id);
if (MyBook == null) {
return NotFound();
}
_db.Book.Remove(MyBook);
await _db.SaveChangesAsync();
return RedirectToPage("Books");
}
}
}
Output
Click to Enlarge