Kayıtlar

asp.net core basit crud uygulaması - validasyon /// 16

Resim
Şimdi yapılacak işlem validasyon ların tanımlanması; Yani kullanıcının input lara yazdığı verilerin uygunluk türüne göre Post edilmesi işlemi. Ürün ismi girilmesi zorunlu kılınacak. Ürün Stoğu ve Ürün Fiyatı seçenekleri zorunlu olmayacak ancak negatif bir sayı türünde olmayacak . Bu validasyonları uygulamak için, FluentValidation kütüphanesi kullanılacak. FluentValidation kütüphanesini projeye yüklemek için; Visual Studio 'daki, Solution Explorer 'da projeye sağ tık yapılır. Manage NuGet Package seçilir. Browse kısmına gidilerek FluentValidation.AspNetCore aratılır ve içine tıklanır. Install edilir. İlk olarak Program.cs içerisine aşağıdaki servisler, Service lerin bulunduğu alana eklenecektir. Ardından ModelState kullanımı gerekmektedir.  Validasyon uygulanacak formlar, ürün oluşturma ve ürün güncelleme sayfaları olduğu için; Bu özellikleri sağlayan Action 'lar ProducController üzerinden aşağıdaki gibi revize edilmelidir. Bir if döngüsü oluşturulur. ModelState.IsValid...

asp.net core basit crud uygulaması - veri detay sayfası - productdetails view /// 15

Resim
Controller 'daki ProductDetails Action 'undan bir View oluşturulsun. Tek bir ürün üzerinden verilerin listelendiği Product/ProductDetails.cshtml sayfası şu şekilde oluşturulacaktır; Bu kod, bir ürün detaylarını görüntülemek için bir görünüm oluşturur.  Model değişkeni, App.Models.Product sınıfından bir nesne içerir.  View içerisinde, " Title " değişkeni " Product Details " olarak ayarlanır ve bir tablo oluşturulur.  Bu tablo, ürün adı, stok miktarı ve fiyatını içerir.  Bu bilgiler, @Model.ProductName , @Model.ProductQuantity ve @Model.ProductPrice ile modelden alınır.

asp.net core basit crud uygulaması - veri güncelleme sayfası - updateproduct view /// 14

Resim
İki tane oluşturulan UpdateProduct Action 'ları üzerinden; Get özellikli Action ile bir View oluşturulsun. Verilerin eklenebildiği Product/UpdateProduct.cshtml sayfası şu şekilde oluşturulacaktır; Bu kod, bir ürün güncelleme işlemi için bir HTML formu oluşturmaktadır. Form, " UpdateProduct " adlı bir Action 'a ve " Product " adlı bir Controller 'a post edilecektir.  TagHelper yardımıyla bağlanmıştır. Formda, ürün adı, stok ve fiyatı için 3 adet input alanı bulunmaktadır.  Bu input alanları, Product modelindeki ProductName , ProductQuantity ve ProductPrice property'lerine bağlıdır. Formun en altında bir " Ürünü Güncelle " düğmesi bulunmaktadır, bu düğme tıklandığında formun içeriği post edilecektir ve güncelleme işlemi gerçekleştirilecektir.

asp.net core basit crud uygulaması - veri ekleme sayfası - createproduct view /// 13

Resim
İki tane oluşturulan CreateProduct Action 'ları üzerinden; Get özellikli Action ile bir View oluşturulsun. Verilerin eklenebildiği Product/CreateProduct.cshtm l sayfası şu şekilde oluşturulacaktır; Model olarak App.Models.Product sınıfı kullanılmaktadır.  Sayfanın başlığı " Create New Product " olarak ayarlanmıştır.  Sayfada bir form bulunmaktadır.  Formun action'ı " CreateProduct " ve controller'ı " Product " olarak TagHelper yardımıyla ayarlanmıştır.  Form içinde 3 adet input alanı bulunmaktadır.  İlk input alanı " ProductName " alanı için kullanılmaktadır.  İkinci input alanı " ProductQuantity " alanı için kullanılmaktadır. Üçüncü input alanı " ProductPrice " alanı için kullanılmaktadır.  Form içinde bir de submit butonu bulunmaktadır.  Bu buton " Ürünü Ekle" yazısı ile etiketlenmiştir.  Bu form kullanıcının yeni bir ürün eklemek için gerekli bilgileri girebileceği bir formdur.

asp.net core basit crud uygulaması - veri silme fonksiyonu - deleteproduct js fonksiyon /// 12

Resim
Veriler listelendiğinde, herhangi bir veriyi silmek için " Delete " tuşu tanımlanmıştı. İşte bu Delete tuşuna basıldığı zaman bir JavaScript fonksiyonu tetiklenecek. Bu  fonksiyon, Index View 'inin en altında @section Scripts özelliği içerisinde tanımlandı. Bunun sebebi, Visual Studio 'da hazır bir MVC projesi oluşturulduğunda bir şablon da beraberinde gelir. Views\Shared\_Layout.cshtml dizininde aşağıdaki kod bulunur.  @await RenderSectionAsync("Scripts", required: false) Bu kodun anlamı, bir View özelinde Scripts section 'u içerisinde o View 'e özel script kodları bulunabilir demektir. Yani sadece Index View' ini ilgilendiren bir JS fonksiyonu bu şekilde tanımlanabilir. Bu kod, bir " Scripts " adlı bölüm içinde tanımlanan bir script bloğudur. Bu fonksiyon, " deleteProduct " adını taşır ve bir parametre olarak " id " alır. İlk olarak, kullanıcıya " Bu ürünü silmek istediğinizden emin misiniz? " diye bir...

asp.net core basit crud uygulaması - veri listeleme sayfası - getproducts view /// 11

Resim
CRUD işlemleri Controller tarafında tanımlandı.  Şimdi sırada View sayfalarının oluşturulması var. Tüm verilerin listelendiği Product/Index.cshtml sayfası şu şekilde oluşturulacaktır; @model IEnumerable<App.Models.Product>; View sayfasının hangi veri modelini kullanacağını tanımlar. Bu kod, " Product " sınıfından oluşan bir IEnumerable kullanacağını belirtir. @{ ViewData["Title"] = "Products"; }; Bu kod bloğu, görünüm sayfasının başlığını tanımlar.  Bu başlık, tarayıcının başlık bölümünde görüntülenir. <table class="table">...</table> Bu kod bloğu, HTML tablo oluşturur.  Tablo, ürünlerin özelliklerini görüntülemek için kullanılır. <thead>...</thead> Bu kod bloğu, tablonun başlık bölümünü oluşturur.  Bu bölüm, tablonun sütunlarının adlarını içerir. <tbody>...</tbody> Bu kod bloğu, tablonun veri bölümünü oluşturur.  Bu bölüm, veritabanından alınan ürünlerin bilgilerini içerir. @foreach (var item in Model) {...