c# Web

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

Şimdi Alan modeli için tam bir CRUD işlemi gerçekleştireceğiz. Alanlar butonuna tıklandığında ilgili controller ve action çalışacak.

Controllers/Admin klasörü altında AlanController.cs dosyasını oluştur.

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 AlanController : Controller
    {
        private readonly ApplicationDbContext _context;

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

        // Alanları Listeleme
        public async Task<IActionResult> Index(string searchString)
        {
            var alanlar = from a in _context.Alanlar
                          select a;

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

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

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

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

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

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

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

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

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

Alanlar Butonunu Güncelle

<li><a class="dropdown-item" asp-controller="Alan" asp-action="Index">Alanlar</a></li>

Alanlar Sayfası (Index.cshtml)

Views/Admin/Alan/Index.cshtml

@model IEnumerable<SchoolManagement.Models.Alan>

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

<h2>Alan Listesi</h2>

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

Alan Ekleme Sayfası (Create.cshtml)

Views/Admin/Alan/Create.cshtml

@model SchoolManagement.Models.Alan

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

<h2>Yeni Alan Ekle</h2>

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

Alan Güncelleme Sayfası (Edit.cshtml)

Views/Admin/Alan/Edit.cshtml

@model SchoolManagement.Models.Alan

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

<h2>Alan Düzenle</h2>

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

Alan Silme Sayfası (Delete.cshtml)

Views/Admin/Alan/Delete.cshtml

@model SchoolManagement.Models.Alan

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

<h2>Alan Sil</h2>
<p>@Model.AlanAdi adlı alanı 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 views edit delete create 
İlgili Makaleler
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
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama1
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
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
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama4
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
RadioButton ile Cinsiyet Bilgisini Alan Asp.Net c# Uygulaması
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama3
2022 TYT Matematik Onbirinci Sorunun Çözümünü c# Diliyle Web Form Sayfasında Kodlama

Yorum Ekle
   
Kötü İyi