Bu dersimizde de yeni bir kitap eklemek için gerekli olan razor sayfamızı ekleme ile yolumuza devam edelim. KitapListesi klasörüme sağ tıklıyor ve add dseçip Razor Page ekleme işlemi yapıyorum. Yine sayfamız partial view olmayacak. Layout kullanacak ve page model oluşturulsun şeklinde seçtim. Sayfamın adını da Olustur verdim.
Dersin Videosu:
Şimdi benim bu sayfamın kullanıcı ara yüzünde kullanıcının kitap adını ve yazar adını girebileceği textboxlarım olacak. Bu sayfada bir veri listeleme işlemi olmayacak. Olustur.cshtml.cs içine geliyor ve kodlarımı yazıyorum:
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 OlusturModel : PageModel
{
private readonly KLDbContext _db;
public OlusturModel(KLDbContext db)
{
_db = db;
}
public Kitap Kitap { get; set; }
public void OnGet()
{
}
}
}
Şimdi daha sonradan da değişiklik, ekleme yapabileceğimizi göstermek adına şöyle yapalım. Kitap modelimize gidelim ve bir property daha ekleyelim.
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace KitapListesiProjesi.Models
{
public class Kitap
{
[Key]
public int Id { get; set; }
[Required]
public string KitapAd { get; set; }
public string Yazar { get; set; }
public string ISBN { get; set; }
}
}
Peki bunu ekledik bitti mi hayır. Database üzerine değişikliği yansıtmam gerek, bunun için yeni bir migration oluşturmalıyım. Package manager consola geliyor ve yeni bir migration ekliyorum.
add-migration ISBNEkleKitapTablosuna
Sonra database güncellemek için yine package manager console kısmında komut yazmam gerek.
update-database diyorum.
İşlemim gerçekleşiyor ve artık veritabanı kısmında Kitap tabloma ISBN kolonunu ekledim.
Şimdi kitapların listelenmesini sağlayan KitapListesi klasörü altında yer alan Index.cshtml’e geliyor ve kodlarımı düzenliyorum. Çünkü ISBN alanım burada henüz yok.
@page
@model KitapListesiProjesi.Pages.KitapListesi.IndexModel