ASP NET CORE RAZOR PAGE BAKIM TEKNİK SERVİS PROJESİ 023 KULLANICI BİLGİLERİ DÜZENLEME SAYFASI

Bu dersimiz de kullanıcıların düzenlenmesi işlemine dair kodlarımızı yazacağız. Öncelikle Pages > Kullanıcılar klasörü altına yeni bir Razor Page ekliyorum. Adını Edit olarak verdim. Page-Model’e sahip olacak ve aynı zamanda layout kullanacak. İlgili ayarlarımı da yaptım. Ben şimdi öncelikle Edit.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 için ve kodları takip edebilmek için dersin video versiyonunu mutlaka izleyiniz.

Edit.cshtml.cs kodları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 EditModel : PageModel
    {
        private readonly ApplicationDbContext _db;

        public EditModel(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. Edit.cshtml Kodlarım:

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


Kullanıcı Düzenle


@section Scripts{ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial");} }

Tasarım kısmımız da bitti, şimdi post handler metodumuzu yazalım ve sonlandıralım. Burada tüm Edit.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 EditModel : PageModel
    {
        private readonly ApplicationDbContext _db;

        public EditModel(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< IActionResult > OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return Page();

            }

            else
            {
                var kullaniciDb = await _db.ApplicationUser.SingleOrDefaultAsync(a => a.Id == ApplicationUser.Id);

                if (kullaniciDb == null)
                {
                    return NotFound();
                }
                else
                {
                    kullaniciDb.AdSoyad = ApplicationUser.AdSoyad;
                    kullaniciDb.PhoneNumber = ApplicationUser.PhoneNumber;
                    kullaniciDb.Adres = ApplicationUser.Adres;
                    kullaniciDb.Sehir = ApplicationUser.Sehir;
                    kullaniciDb.PostaKodu = ApplicationUser.PostaKodu;

                    await _db.SaveChangesAsync();
                    return RedirectToPage("Index");

                }
            }
        }
    }
}

İşi özetler isek, ben herhangi bir kullanıcının yanındaki düzenle butonuna basılınca o kullanıcıya dair verilerin düzenlenmesi için ilgili bilgileri ID’ye göre veritabanımdan çekiyorum. Bu işlemimi code tarafımda GET handler metodum yapıyor. Akabinde gelen bilgiler üzerinde istediğim alanlarda düzenleme yapıp, formu kaydetmeye bastığımda POST handler metodum devreye giriyor ve db üzerinde değişiklikler gerçekleştiriliyor. İşlem bu kadar.

Daha fazla detay için ve kodları takip edebilmek 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