c# Web
Beğen (0)

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

Gruplar için gerekli düzenlemeleri yapmak amacıyla Gruplar modelini oluşturup, CRUD işlemlerini gerçekleştirecek GrupController'ı ekleyelim. Aynı zamanda grup sayfasını (Index), grup ekleme (Create), grup düzenleme (Edit), ve grup silme (Delete) sayfalarını oluşturacağız.

GroupController Oluşturulması

Şimdi, Admin klasöründe GroupController'ı ekleyerek CRUD işlemlerini 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")] // Admin role sahip kullanıcıların erişebilmesi için
    public class GrupController : Controller
    {
        private readonly ApplicationDbContext _context;

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

        // Grupları Listeleme
        public async Task<IActionResult> Index(string searchString)
        {
            var gruplar = from g in _context.Gruplar
                          select g;

            if (!string.IsNullOrEmpty(searchString))
            {
                gruplar = gruplar.Where(g => g.GrupAdi.Contains(searchString)); // GrupAdi'na göre arama
            }

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

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

        // Yeni Grup Ekleme (POST)
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Create(Grup grup)
        {
            if (ModelState.IsValid)
            {
                _context.Add(grup); // Yeni grup ekleme
                await _context.SaveChangesAsync(); // Değişiklikleri kaydet
                return RedirectToAction(nameof(Index)); // Gruplar listesine yönlendir
            }
            return View("~/Views/Admin/Grup/Create.cshtml", grup); // Hata varsa tekrar aynı sayfayı göster
        }

        // Grup Düzenleme (GET)
        public async Task<IActionResult> Edit(int id)
        {
            var grup = await _context.Gruplar.FindAsync(id);
            if (grup == null)
            {
                return NotFound(); // Grup bulunamazsa hata döndür
            }
            return View("~/Views/Admin/Grup/Edit.cshtml", grup); // Düzenleme sayfasını göster
        }

        // Grup Düzenleme (POST)
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Edit(int id, Grup grup)
        {
            if (id != grup.Id)
            {
                return NotFound(); // Eğer id uyuşmazsa hata döndür
            }

            if (ModelState.IsValid)
            {
                _context.Update(grup); // Grupları güncelle
                await _context.SaveChangesAsync(); // Değişiklikleri kaydet
                return RedirectToAction(nameof(Index)); // Gruplar listesine yönlendir
            }
            return View("~/Views/Admin/Grup/Edit.cshtml", grup); // Hata varsa tekrar aynı sayfayı göster
        }

        // Grup Silme (GET)
        public async Task<IActionResult> Delete(int id)
        {
            var grup = await _context.Gruplar.FindAsync(id);
            if (grup == null)
            {
                return NotFound(); // Grup bulunamazsa hata döndür
            }
            return View("~/Views/Admin/Grup/Delete.cshtml", grup); // Silme sayfasını göster
        }

        // Grup Silme (POST)
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> DeleteConfirmed(int id)
        {
            var grup = await _context.Gruplar.FindAsync(id);
            if (grup != null)
            {
                _context.Gruplar.Remove(grup); // Grubu sil
                await _context.SaveChangesAsync(); // Değişiklikleri kaydet
            }
            return RedirectToAction(nameof(Index)); // Gruplar listesine yönlendir
        }
    }
}

Gruplar Menüsüne Buton Ekleme

Tanımlamalar menüsünde Gruplar butonunu ekleyeceğiz. Bu buton GrupController'ın Index action'ına yönlendirecek.

<li><a class="dropdown-item" asp-controller="Grup" asp-action="Index">Gruplar</a></li>

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

@model IEnumerable<SchoolManagement.Models.Grup>

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

<h2>Grup Listesi</h2>

<p>
    <a class="btn btn-primary" asp-action="Create">Yeni Grup 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>Grup Adı</th>
            <th>İşlemler</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.Id</td>
                <td>@item.GrupAdi</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>

Yeni Grup Ekleme Sayfası (Create.cshtml)

Yeni bir grup eklemek için Views/Admin/Grup/Create.cshtml dosyasını oluşturuyoruz.

@model SchoolManagement.Models.Grup

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

<h2>Yeni Grup Ekle</h2>

<form asp-action="Create" method="post">
    <div class="form-group">
        <label asp-for="GrupAdi"></label>
        <input asp-for="GrupAdi" 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>

Grup Güncelleme Sayfası (Edit.cshtml)

Grupları düzenlemek için Views/Admin/Grup/Edit.cshtml dosyasını oluşturuyoruz.

@model SchoolManagement.Models.Grup

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

<h2>Grup Düzenle</h2>

<form asp-action="Edit" method="post">
    <input type="hidden" asp-for="Id" />
    <div class="form-group">
        <label asp-for="GrupAdi"></label>
        <input asp-for="GrupAdi" 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>

Grup Silme Sayfası (Delete.cshtml)

Grupları silmek için Views/Admin/Grup/Delete.cshtml dosyasını oluşturuyoruz.

@model SchoolManagement.Models.Grup

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

<h2>Grup Sil</h2>
<p>@Model.GrupAdi adlı grubu 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ı: 2

Etiketler
core mvc edit delete create views 

Yorumlar

Yorum Ekle
Kötü İyi
İlgili Makaleler
Web Tabanlı Uygulama Geliştirme Dersi İkinci Dönem Birinci Yazılı Çalışma Soruları
Web Tabanlı Uygulama Geliştirme Dersi İkinci Dönem İkinci Yazılı Çalışma Soruları
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Web Form Sayfasında Kodlama
Asp.Net Platformunda Harici JSON Dosyasından Namaz Vakitlerini Alma
Personele Ait Boy ve Kilo Bilgilerine Göre İdeal Kiloyu Bulan Uygulamayı Asp.Net İle Yapınız
ASP.NET ve ASP.NET Core Arasındaki Farklar
Asp.Net Uygulamalarında Modal PopUp Oluşturma
Core Mvc Uygulamalarında Sunucuya Dosya Yükleme
Core Mvc Projesinde Tuple Nesneleri Post Etme ve Yakalama İşlemleri
Visual Studio 2022 Programında Asp.Net Web Application Şablonu Görünmüyor Hatasını Düzeltme
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama8
Core Mvc Uygulamalarında Validation İşlemleri
Core Mvc Projesinde Kullanıcıdan Farklı Veri Alma Yöntemlerini Kullanarak Toplama İşlemini Gerçekleştirme
Core Mvc Projelerinde Kullanılan Tag Helper Kütüphanesi ve Özellikleri
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama2
SqLite Programında Uyeler Tablosuyla İlgili Tüm İşlemleri Gerçekleştiren c# Web Uygulaması
Core Mvc Uygulamasında Sanal Data Kullanarak Personel Bilgilerini İşleyen Web Projesi Oluşturma3
Core Mvc Projelerinde Input Tag Helper Kullanımı
Asp.Net Uygulamalarında Repeater Kontrolü
Asp.Net Uygulamalarında ValidationSummary İşlemi