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
SqLite Programında Uyeler Tablosuyla İlgili Tüm İşlemleri Gerçekleştiren c# Web Uygulaması
Web Uygulamalarında SqLite Veritabanında Uyeler Tablosunda Kayıtları Listeleme
Web Uygulamalarında SqLite Veritabanını Oluşturma
Web Uygulamalarında SqLite Veritabanında Uyeler Tablosuna Kayıt Girişi Yapma
Web Uygulamalarında SqLite Veritabanında Uyeler Tablosunda Kayıt Silme İşlemini Yapma
Personele Ait Boy ve Kilo Bilgilerine Göre İdeal Kiloyu Bulan Uygulamayı Asp.Net İle Yapınız
Web Uygulamalarında SqLite Kullanımı
Web Uygulamalarında SqLite Veritabanında Uyeler Tablosunda Kayıt Güncelleme İşlemini Yapma
Öğrencilere Ait Performans ve Uygulama Notlarının Girildiği Core Mvc Projesi Tasarlama10
Visual Studio 2022 Programında Asp.Net Web Application Şablonu Görünmüyor Hatasını Düzeltme
Core Mvc Projesinde Otomobil Satışı Yapan Web Projesini Tasarlama3
Web Uygulamalarında Bilgisayarın İnternete Bağlı Olup Olmadığını Kontrol Etme
Asp.Net Sayfasında jQuery Kullanarak Buton Click Olaylarını Kontrol Etme
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Web Form Sayfasında Kodlama
Web Uygulamalarında SqLite Veritabanında Uyeler Tablosunu Oluşturma
2022 TYT Matematik Üçüncü Sorunun Çözümünü c# Diliyle Web Sayfasında Kodlama
Core Mvc Projesinde Otomobil Satışı Yapan Web Projesini Tasarlama6
Mevsimlere Ait Ayları Select Etiketiyle Listeleyen Core Mvc Uygulaması
Server Explorer Panelini Kullanarak Veri tabanında Tablo Ekleme, Silme, Düzenleme
Asp.Net Uygulamalarında RequiredFieldValidator İşlemi

Yorum Ekle
   
Kötü İyi