ASP.NET Core Kitap Listeleme Projesi Ders 08

Kitap Bilgileri Düzenleme İşlemleri GET Metodu

Şimdi bilgi düzenlemek için Düzenle butonuna bastığımda yapacğaım işlemlere ilişkin razor sayfalarını oluşturma ile dersimize devam edelim. Öncelikle index sayfamıza gidelim ve burada Düzenle butonuna hangi sayfaya yönlenme ve nasıl yönlenme yapılacağına ilişkin kodlarımızı ekleyelim.

Dersin Video eğitimini izlemenizi de öneririm:

Index Sayfası Kodlarım:

@page
@model KitapListesiProjesi.Pages.KitapListesi.IndexModel



Kitap Listesi

@'if' (Model.Kitaplar.Count()>0) { < table class="table table-striped border"> < tr class="table-secondary"> < th> < /th> < th> @*@Html.DisplayNameFor(a => a.Kitaplar.FirstOrDefault().Yazar)*@ < /th> < th> < /th> < th>İŞLEMLER < /tr> @foreach(var item in Model.Kitaplar) { < tr> < td> @Html.DisplayFor(a => item.KitapAd) < /td> < td> @Html.DisplayFor(a => item.Yazar) < /td> < td> @Html.DisplayFor(a => item.ISBN) < /td> < td> Düzenle < /td> < /tr> } < /table> } else {

Listelenecek kitap bulunamadı...

}

Not: Burada if önünde ve sonunda tırnak işareti yazdım ancak kod içinde bu yok. wordpress tema hatası nedeni ile ekledim. Video eğitimde ayrıntıyı görebilirsiniz.

Buraya eklediğim kodlar ile, asp-page vasıtası ile ben Duzenle sayfasına route işleminin yapılmasını istediğimi belirtiyorum. asp-route-id ile ise bu Duzenle sayfasına giderken ilgili ID değerine ait veriler ile git diyorum.

Düzenleme İşlemi İçin Kullanıcı Arayüzünün Tasarlanması:

Şimdi gelelim Duzenle sayfasını oluşturma işlemimize. Bunun için solution eplorerda Pages/KitapListesi klasörü altına yeni bir Razor Page ekliyorum, adını da Duzenle verdim. Şimdi burada kodlarımızı yazalım:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using KitapListesiProjesi.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace KitapListesiProjesi.Pages.KitapListesi
{
    public class DuzenleModel : PageModel
    {
        private KLDbContext _db;

        public DuzenleModel(KLDbContext db)
        {
            _db = db;
        }

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

        public async Task OnGet(int id)
        {
            Kitap = await _db.Kitap.FindAsync(id);
        }
    }
}

Burada ne yaptık anlatalım. OnGet metoduma ben parametre olarak int tipinde id ekledim. Böylelikle ilgili id ile o ID’ye ait kitap verilerini alacağım. Veritabanı üzerinde işlem  yapacağım için yeni bir dbcontext tanımladım ve ilgili constructor metodumu oluşturdum.

Daha sonra ilgili Kitap sınıfımdan Kitap adında bir nesne oluşturdum ve BindProperty ile bunu OnGet metoduma bağladım. OnGet metodum içinde yer alan FindAsync ile id’ye göre kitap bilgilerini buluyorum. Burası asenkronik olduğu için await keywordunu kullanıyorum dolayısı ile OnGet metodumda async Task tipinde bir metot oluyor.

Şimdi Duzenleme işlemine dair arayüz tasarımımıza geçelim. Benim Duzenle sayfama ait arayüz aslında Olustur ile tamamen aynı, tek farkları Duzenle sayfamda ilgili veriler textboxlar içine gelecek. Dolayısı ile ben Olustur sayfama geliyor ve burada yer alan kodları üstteki model referansları haricinde kopyalıyor ve Duzenle sayfama yapıştırıyorum. İki adet düzenleme ile kodlarım:

@page
@model KitapListesiProjesi.Pages.KitapListesi.DuzenleModel


Kitap Bilgileri Düzenle


@section Scripts { < partial name="_ValidationScriptsPartial" /> }

Başlık ve value düzenlemesini yaptıktan sonra çalıştırıyorum. Artık Düzenle sayfamız mevcut. Üstte tarayıcıda görüleceği üzere düzenlemek istediğim kitabın ID’si geliyor. Şu anda Güncelle butonuna bastığımda herhangi bir güncelleme işlemi yapmayacak. Çünkü henüz post metodumuzu yazmadık. Onuda bir sonraki derste yazalım. Ekran çıktısını da ekleyelim:

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

Bir cevap yazın

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