c# Web
Beğen (0)

Öğrencilere Ait Performans ve Uygulama Notlarının Girildiği Core Mvc Projesi Tasarlama11

Dal modeli ile ilgili gerekli değişiklikleri ve CRUD işlemlerini gerçekleştirecek şekilde düzenlemeleri yapalım. 

DalController Oluşturulması

Controllers/Admin klasörüne DalController.cs dosyasını ekleyelim ve CRUD işlemleri gerçekleştirelim.

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using SchoolManagement.Data;
using SchoolManagement.Models;

namespace SchoolManagement.Controllers.Admin
{
    [Authorize(Roles = "Admin")] // Sadece admin kullanıcıları erişebilecek
    public class DalController : Controller
    {
        private readonly ApplicationDbContext _context;

        public DalController(ApplicationDbContext context)
        {
            _context = context;
        }

        // Dalları Listeleme
        public async Task<IActionResult> Index(string searchString)
        {
            var dallar = from d in _context.Dallar
                         select d;

            // Eğer arama yapılıyorsa, arama kriterine göre dalları filtreliyoruz
            if (!string.IsNullOrEmpty(searchString))
            {
                dallar = dallar.Where(d => d.DalAdi.Contains(searchString));
            }

            return View("~/Views/Admin/Dal/Index.cshtml", await dallar.ToListAsync());
        }

        // Yeni Dal Ekleme (GET)
        public IActionResult Create()
        {
            return View("~/Views/Admin/Dal/Create.cshtml");
        }

        // Yeni Dal Ekleme (POST)
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Create(Dal dal)
        {
            if (ModelState.IsValid)
            {
                _context.Add(dal);
                await _context.SaveChangesAsync();
                return RedirectToAction(nameof(Index)); // Dallar sayfasına yönlendiriyoruz
            }
            return View("~/Views/Admin/Dal/Create.cshtml", dal); // Hata varsa aynı sayfayı tekrar gösteriyoruz
        }

        // Dal Düzenleme (GET)
        public async Task<IActionResult> Edit(int id)
        {
            var dal = await _context.Dallar.FindAsync(id);
            if (dal == null) return NotFound(); // Dal bulunamazsa hata sayfasına yönlendir
            return View("~/Views/Admin/Dal/Edit.cshtml", dal);
        }

        // Dal Düzenleme (POST)
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Edit(int id, Dal dal)
        {
            if (id != dal.Id) return NotFound(); // ID uyuşmazsa hata sayfasına yönlendir

            if (ModelState.IsValid)
            {
                _context.Update(dal);
                await _context.SaveChangesAsync();
                return RedirectToAction(nameof(Index)); // Dallar sayfasına yönlendir
            }
            return View("~/Views/Admin/Dal/Edit.cshtml", dal); // Hata varsa aynı sayfayı tekrar göster
        }

        // Dal Silme (GET)
        public async Task<IActionResult> Delete(int id)
        {
            var dal = await _context.Dallar.FindAsync(id);
            if (dal == null) return NotFound(); // Dal bulunamazsa hata sayfasına yönlendir
            return View("~/Views/Admin/Dal/Delete.cshtml", dal);
        }

        // Dal Silme (POST)
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> DeleteConfirmed(int id)
        {
            var dal = await _context.Dallar.FindAsync(id);
            if (dal != null)
            {
                _context.Dallar.Remove(dal);
                await _context.SaveChangesAsync();
            }
            return RedirectToAction(nameof(Index)); // Dallar sayfasına yönlendir
        }
    }
}

Dal Butonunu Güncelleme

Alanlar butonunun olduğu menüde, Dallar için yeni bir buton ekleyelim. Bu buton, DalController'ın Index action'ına yönlendirecek.

<li><a class="dropdown-item" asp-controller="Dal" asp-action="Index">Dallar</a></li>

Dal Sayfası (Index.cshtml)

Dalların listeleneceği ana sayfayı Views/Admin/Dal/Index.cshtml dosyasına ekleyelim.

@model IEnumerable<SchoolManagement.Models.Dal>

@{
    ViewData["Title"] = "Dallar";
}

<h2>Dal Listesi</h2>

<p>
    <a class="btn btn-primary" asp-action="Create">Yeni Dal Ekle</a>
</p>

<form asp-action="Index" method="get">
    <input type="text" name="searchString" class="form-control w-25 d-inline" placeholder="Ara..." />
    <button type="submit" class="btn btn-secondary">Ara</button>
</form>

<table class="table table-bordered mt-3">
    <thead>
        <tr>
            <th>ID</th>
            <th>Dal Adı</th>
            <th>İşlemler</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.Id</td>
                <td>@item.DalAdi</td>
                <td>
                    <a class="btn btn-warning btn-sm" asp-action="Edit" asp-route-id="@item.Id">Düzenle</a>
                    <a class="btn btn-danger btn-sm" asp-action="Delete" asp-route-id="@item.Id">Sil</a>
                </td>
            </tr>
        }
    </tbody>
</table>

Dal Ekleme Sayfası (Create.cshtml)

Yeni Dal eklemek için Views/Admin/Dal/Create.cshtml dosyasını oluşturacağız.

@model SchoolManagement.Models.Dal

@{
    ViewData["Title"] = "Yeni Dal Ekle";
}

<h2>Yeni Dal Ekle</h2>

<form asp-action="Create" method="post">
    <div class="form-group">
        <label asp-for="DalAdi"></label>
        <input asp-for="DalAdi" class="form-control" required />
    </div>
    <button type="submit" class="btn btn-success mt-2">Kaydet</button>
</form>

<p>
    <a asp-action="Index">Geri Dön</a>
</p>

Dal Güncelleme Sayfası (Edit.cshtml)

Dal düzenleme işlemi için Views/Admin/Dal/Edit.cshtml dosyasını ekleyelim.

@model SchoolManagement.Models.Dal

@{
    ViewData["Title"] = "Dal Düzenle";
}

<h2>Dal Düzenle</h2>

<form asp-action="Edit" method="post">
    <input type="hidden" asp-for="Id" />
    <div class="form-group">
        <label asp-for="DalAdi"></label>
        <input asp-for="DalAdi" class="form-control" required />
    </div>
    <button type="submit" class="btn btn-primary mt-2">Güncelle</button>
</form>

<p>
    <a asp-action="Index">Geri Dön</a>
</p>

Dal Silme Sayfası (Delete.cshtml)

Dal silme işlemi için Views/Admin/Dal/Delete.cshtml dosyasını oluşturalım.

@model SchoolManagement.Models.Dal

@{
    ViewData["Title"] = "Dal Sil";
}

<h2>Dal Sil</h2>
<p>@Model.DalAdi adlı dalı silmek istediğinizden emin misiniz?</p>

<form asp-action="Delete" method="post">
    <input type="hidden" asp-for="Id" />
    <button type="submit" class="btn btn-danger">Sil</button>
</form>

<p>
    <a asp-action="Index">Geri Dön</a>
</p>

 

Okunma Sayısı: 1

Etiketler
core mvc create edit delete views 

Yorumlar

Yorum Ekle
Kötü İyi
İlgili Makaleler
Web Tabanlı Uygulama Geliştirme Dersi İkinci Dönem İkinci Yazılı Çalışma Soruları
Web Tabanlı Uygulama Geliştirme Dersi İkinci Dönem Birinci Yazılı Çalışma Soruları
Asp.Net Platformunda Harici JSON Dosyasından Namaz Vakitlerini Alma
Core Mvc Projesinde Tuple Nesneleri Post Etme ve Yakalama İşlemleri
Asp.Net Uygulamalarında Response.Redirect Kullanarak Web Sayfasını Yeni Sekmede Açma
Stripe Kullanarak Kredi Kartı ile Ödeme İşlemi Yapan Asp.Net Uygulaması
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Web Form Sayfasında Kodlama
Oluşturulan DLL Dosyasını Web Sayfasına Ekleyip Kullanma
Klavyeden Girilen İki Sayıyı Toplayan Programı Visual Studio 2022 Programında Web Sayfası Olarak Kodlayınız
Ajax Modal Popup Extender Kullanarak GridView Satırını Düzenleme ve Yeni Kayıt Ekleme
Sanal Data Kullanarak Oluşturulan Personel Bilgilerini SqLite Veri Tabanına Dönüştüren Web Uygulaması4
C# Uygulamasında Miladi Takvimi Hicri Takvime, Hicri Takvimi Miladi Takvime Dönüştürme
Derslere Ait Başarı Durumunu Model Tasarlayarak Listeleyen Core Mvc Uygulaması
Web Uygulamalarında SqLite Veritabanında Uyeler Tablosuna Kayıt Girişi Yapma
Asp.Net Uygulamalarında Modal PopUp Oluşturma
ASP.NET ve ASP.NET Core Arasındaki Farklar
Yayınlanan Web Service Hizmetini Asp.Net Web Sayfasında Kullanma
Web Uygulamalarında SqLite Veritabanında Uyeler Tablosunu Oluşturma
Visual Studio 2022 Programında Asp.Net Core Web Projesi Oluşturma
Öğrenci Bilgilerini Post Metoduyla Alan Core Mvc Uygulaması