c# Web

Öğ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>

 


Etiketler
core mvc edit delete create views 
İlgili Makaleler
Web Tabanlı Uygulama Geliştirme Dersi İkinci Dönem İkinci Yazılı Çalışma Soruları
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama1
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Web Form Sayfasında Kodlama
Web Tabanlı Uygulama Geliştirme Dersi İkinci Dönem Birinci Yazılı Çalışma Soruları
Visual Studio 2022 Programında Asp.Net Web Application Şablonu Görünmüyor Hatasını Düzeltme
Core Mvc Projesinde Tuple Nesneleri Post Etme ve Yakalama İşlemleri
Seri Port Yardımıyla Arduino Devresine Bağlanıp Ledleri Asp.Net Web Uygulamasından Yakıp Söndürme
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama4
Sitenin Alexa Dünya Sıralamasını Kodlarla Öğrenme
Personele Ait Boy ve Kilo Bilgilerine Göre İdeal Kiloyu Bulan Uygulamayı Asp.Net İle Yapınız
Bir Otobüs Firmasına Ait Bilet Satış İşlemlerini Class(Sınıf) Tanımlayarak Yapan c# Form Uygulaması
Asp.Net Uygulamasında Manual Olarak JSON Oluşturma
Asp.Net Uygulamalarında Modal PopUp Oluşturma
Web Uygulamalarında SqLite Kullanımı
Asp.Net Uygulamalarında DataList (Veri Listeleme) Kontrolü
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama2
C# Uygulamasında Miladi Takvimi Hicri Takvime, Hicri Takvimi Miladi Takvime Dönüştürme
2022 TYT Matematik Onbirinci Sorunun Çözümünü c# Diliyle Web Form Sayfasında Kodlama
RadioButton ile Cinsiyet Bilgisini Alan Asp.Net c# Uygulaması
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama3

Yorum Ekle
   
Kötü İyi