ASP NET CORE RAZOR PAGE BAKIM TEKNİK SERVİS PROJESİ 024 KULLANICI SİLME İŞLEMİ

Bu dersimiz de kullanıcı silme işlemine dair kodlarımızı yazacağız. Öncelikle Pages > Kullanıcılar klasörü altına yeni bir Razor Page ekliyorum. Adını Delete olarak verdim. Page-Model’e sahip olacak ve aynı zamanda layout kullanacak. İlgili ayarlarımı da yaptım. Ben şimdi öncelikle Delete.cshtml.cs tarafında get handler metodumu yazcağım, akabinde tasarım yapacağım, en son yine dönüp, post handler metodumu yazacağım.

Daha fazla detay ve doğru kod takibi için dersin video versiyonunu mutlaka izleyiniz.

Delete.cshtml.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using GursoyCNCBakim.Data;
using GursoyCNCBakim.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;

namespace GursoyCNCBakim.Pages.Kullanicilar
{
    public class DeleteModel : PageModel
    {
        private readonly ApplicationDbContext _db;

        public DeleteModel(ApplicationDbContext db)
        {
            _db = db;
        }

        [BindProperty]
        public ApplicationUser ApplicationUser { get; set; }

        public async Task< IActionResult > OnGetAsync(string id)
        {
            if (id.Trim().Length == 0)
            {
                return NotFound();
            }

            ApplicationUser = await _db.ApplicationUser.FirstOrDefaultAsync(a => a.Id == id);

            if (ApplicationUser == null)
            {
                return NotFound();
            }

            return Page();
        }

        
    }
}

Buradan tasarım kısmımıza geçelim. Delete.cshtml Kodlarım:

@page
@model GursoyCNCBakim.Pages.Kullanicilar.DeleteModel
@{
    ViewData["Title"] = "Delete";
    Layout = "~/Pages/Shared/_Layout.cshtml";
}


Kullanıcı Sil


Tasarım kısmımız da bitti, şimdi post handler metodumuzu yazalım ve sonlandıralım. Burada tüm Delete.cshtml.cs kodlarımızı paylaşayım:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using GursoyCNCBakim.Data;
using GursoyCNCBakim.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;

namespace GursoyCNCBakim.Pages.Kullanicilar
{
    public class DeleteModel : PageModel
    {
        private readonly ApplicationDbContext _db;

        public DeleteModel(ApplicationDbContext db)
        {
            _db = db;
        }

        [BindProperty]
        public ApplicationUser ApplicationUser { get; set; }

        public async Task< IActionResult > OnGetAsync(string id)
        {
            if (id.Trim().Length == 0)
            {
                return NotFound();
            }

            ApplicationUser = await _db.ApplicationUser.FirstOrDefaultAsync(a => a.Id == id);

            if (ApplicationUser == null)
            {
                return NotFound();
            }

            return Page();
        }

        public async Task OnPostAsync()
        {
            var kullaniciDb = await _db.Users.SingleOrDefaultAsync(a => a.Id == ApplicationUser.Id);

            _db.Users.Remove(kullaniciDb);
            await _db.SaveChangesAsync();

            return RedirectToPage("Index");
        }
    }
}

İşi özetler isek, ben herhangi bir kullanıcının yanındaki sil butonuna basılınca o kullanıcıya dair verilerin gösterilmesi için ilgili bilgileri ID’ye göre veritabanımdan çekiyorum. Bu işlemimi code tarafımda GET handler metodum yapıyor. Akabinde bilgiler geliyor. SİL butonuna bastığımda POST handler metodum devreye giriyor ve db üzerinde silme işlemi gerçekleştiriliyor. İşlem bu kadar.

Daha fazla detay ve doğru kod takibi için dersin video versiyonunu mutlaka izleyiniz.

Bir sonraki derste görüşmek üzere arkadaşlar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir