ASP.NET Core 6.0 - CRUD Operation - insert, update, delete, view


Saturday, December 21, 2024    |    623 views

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>

 


Post Comments
985539