ASP.NET Core 6.0 - CRUD Operation - insert, update, delete, view
Add New controller
using Microsoft.AspNetCore.Mvc;
using WebAppProj.Data;
using WebAppProj.Models;
namespace WebAppProj.Controllers
{
public class CountryController : Controller
{
private ApplicationDbContext _context;
public CountryController(ApplicationDbContext context)
{
_context = context;
}
public IActionResult Index()
{
IEnumerable<Country> countries = _context.Countries;
return View(countries);
}
[HttpGet]
public IActionResult Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create(Country country)
{
if (ModelState.IsValid)
{
_context.Countries.Add(country);
_context.SaveChanges();
TempData["sucess"] = "Add Record Sucussfully";
return RedirectToAction("Index");
}
return View(country);
}
[HttpGet]
public IActionResult Details(int? id)
{
if(id == null || id==0)
{
return NotFound();
}
var country = _context.Countries.Find(id);
if(country == null)
{
return NotFound();
}
return View(country);
}
[HttpGet]
public IActionResult Edit(int? id)
{
if (id == null || id == 0)
{
return NotFound();
}
var country = _context.Countries.Find(id);
if (country == null)
{
return NotFound();
}
return View(country);
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Edit(Country country)
{
if (ModelState.IsValid)
{
_context.Countries.Update(country);
_context.SaveChanges();
TempData["sucess"] = "Update Record Sucussfully";
return RedirectToAction("Index");
}
return View(country);
}
[HttpGet]
public IActionResult Delete(int? id)
{
if (id == null || id == 0)
{
return NotFound();
}
var country = _context.Countries.Find(id);
if (country == null)
{
return NotFound();
}
return View(country);
}
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public IActionResult DeleteData(int? id)
{
var country = _context.Countries.Find(id);
if (country == null)
{
return NotFound();
}
_context.Countries.Remove(country);
_context.SaveChanges();
TempData["sucess"] = "Deleted Record Sucussfully";
return RedirectToAction("Index");
}
}
}
Index.cshtml
@model IEnumerable<Country>
@{
ViewData["Title"] = "Index";
}
<div class="row">
<div class="col-6"><h1>Country List</h1></div>
<div class="col-6 text-end">
<a asp-action="Create" asp-controller="Country" class="btn btn-primary"><i class="bi bi-plus-square-fill"></i> Add Country</a>
</div>
</div>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Country Id</th>
<th>Country Name</th>
<th>Country Region</th>
<th>Country Date</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach(var item in Model)
{
<tr>
<td>@item.Id</td>
<td>@item.Name</td>
<td>@item.Region</td>
<td>@item.CreatedDate</td>
<td>
<a asp-action="Details" asp-controller="Country" asp-route-id="@item.Id"><i class="bi bi-card-list"></i></a>
<a asp-action="Edit" asp-controller="Country" asp-route-id="@item.Id"><i class="bi bi-pencil-square"></i></a>
<a asp-action="Delete" asp-controller="Country" asp-route-id="@item.Id"><i class="bi bi-trash-fill"></i></a>
</td>
</tr>
}
</tbody>
</table>
create.cshtml
@model WebAppProj.Models.Country
@{
ViewData["Title"] = "Create";
}
<h1>Create Country</h1>
<hr />
<form asp-action="Create">
<div class="row">
<div class="col-3"><label asp-for="Name"></label> </div>
<div class="col-6"><input asp-for="Name" class="form-control" /> </div>
<div class="col-3"><span asp-validation-for="Name" class="text-danger"></span></div>
</div>
<div class="row">
<div class="col-3"><label asp-for="Region"></label> </div>
<div class="col-6"><input asp-for="Region" class="form-control" /> </div>
<div class="col-3"><span asp-validation-for="Region" class="text-danger"></span></div>
</div>
<div class="row">
<div class="col-3"> </div>
<div class="col-6">
<input type="submit" value="Create" class="btn btn-primary" />
<a asp-action="Index" asp-controller="Country" class="btn btn-danger">Back To List</a>
</div>
<div class="col-3"></div>
</div>
</form>
Edit.cshtml
@model WebAppProj.Models.Country
@{
ViewData["Title"] = "Create";
}
<h1>Edit Country</h1>
<hr />
<form asp-action="Edit">
<input type="hidden" asp-for=Id />
<div class="row">
<div class="col-3"><label asp-for="Name"></label> </div>
<div class="col-6"><input asp-for="Name" class="form-control" /> </div>
<div class="col-3"><span asp-validation-for="Name" class="text-danger"></span></div>
</div>
<div class="row">
<div class="col-3"><label asp-for="Region"></label> </div>
<div class="col-6"><input asp-for="Region" class="form-control" /> </div>
<div class="col-3"><span asp-validation-for="Region" class="text-danger"></span></div>
</div>
<div class="row">
<div class="col-3"> </div>
<div class="col-6">
<input type="submit" value="Update" class="btn btn-primary" />
<a asp-action="Index" asp-controller="Country" class="btn btn-danger">Back To List</a>
</div>
<div class="col-3"></div>
</div>
</form>
details.ashtml
@model WebAppProj.Models.Country
@{
ViewData["Title"] = "Details";
}
<h1>Country Details</h1>
<hr />
<div class="row">
<div class="col-3">@Html.DisplayNameFor(model=>model.Id)</div>
<div class="col-9">@Html.DisplayFor(model=>model.Id)</div>
</div>
<div class="row">
<div class="col-3">@Html.DisplayNameFor(model=>model.Name)</div>
<div class="col-9">@Html.DisplayFor(model=>model.Name)</div>
</div>
<div class="row">
<div class="col-3">@Html.DisplayNameFor(model=>model.Region)</div>
<div class="col-9">@Html.DisplayFor(model=>model.Region)</div>
</div>
<div class="row">
<div class="col-3">@Html.DisplayNameFor(model=>model.CreatedDate)</div>
<div class="col-9">@Html.DisplayFor(model=>model.CreatedDate)</div>
</div>
</div>
<div class="row">
<div class="col-3"></div>
<div class="col-9">
<a asp-action="Edit" asp-route-id="@Model?.Id" class="btn btn-primary">Edit</a>
<a asp-action="Index" class="btn btn-danger">Back To List</a>
</div>
</div>
delete.cshtml
@model WebAppProj.Models.Country
@{
ViewData["Title"] = "Details";
}
<h1>Delete Country</h1>
<h3>Are you sure you want to delete this?</h3>
<hr />
<div class="row">
<div class="col-md-3">@Html.DisplayNameFor(model=>model.Id) </div>
<div class="col-md-9">@Html.DisplayFor(model=>model.Id) </div>
</div>
<div class="row">
<div class="col-md-3">@Html.DisplayNameFor(model=>model.Name) </div>
<div class="col-md-9">@Html.DisplayFor(model=>model.Name) </div>
</div>
<div class="row">
<div class="col-md-3">@Html.DisplayNameFor(model=>model.Region) </div>
<div class="col-md-9">@Html.DisplayFor(model=>model.Region) </div>
</div>
<div class="row">
<div class="col-md-3">@Html.DisplayNameFor(model=>model.CreatedDate) </div>
<div class="col-md-9">@Html.DisplayFor(model=>model.CreatedDate) </div>
</div>
<form asp-action="Delete">
<div class="row">
<div class="col-md-3"> </div>
<div class="col-md-9"><input type="hidden" asp-for="Id" />
<input type="submit" value="Delete" class="btn btn-danger" />
<a asp-action="Index" class="btn btn-success">Back to List</a> </div>
</div>
</form>