İçeriğe geç

Asp.NET Core MVC Model Binding

Bilindiği gibi biz kullanıcılardan bir istek alınırken bunu formlar aracılığı ile yaparız veya farklı olarak javascript vs. kullanıyorsak bu işlemi arka planda belirterek istek yaparız server’ımızdan. Yani server’a bir istek gider bu isteğin içerisinde ne isteği olduğu ve içerisindeki veriler var ise gönderilir ve cevap beklenir. Request ve reponse kavramları.

Biz form yardımı ile bi sayfaya post isteğinde bulunarak veri gönderebiliriz bu verilerin gönderilmesi için bir çok yöntem var. Bu yöntemler;

  1. Uğraşmayı seversiniz eller tek tek html elemanları yazabilirsiniz.
  2. Razor Html den yardım alabilirsiniz.
  3. TagHelper kullanabilirsiniz.

İlk yöntemi kullanmak bana biraz zor gelsede basit olarak göstermek gerekirse;

Kırmızı kısım uğraşılarak yazılmış veya ihtiyaç halinde yazılacak yöntemdir. Yeşil kısım ise 2.maddeye uyan kısımdır. Bizim modelimize uygun olarak bizlere html input’ları oluşturur ve isimlendirir. Her ikisinide controller’ımız yakalar dikkat edilecek olursa kırmızı kısımda name kısımları aşağıdaki yeşil kısımdakiler ile aynıdır küçük harflerle yazılmıştır bunları C# bizim için post edildiğinde controller içerisinde yakalayacaktır.

Eğer gelen istek get isteği ise üstteki method çalışacaktır post isteği geldiğinde ise altındaki çalışacaktır. Bunuda attribute ile belirttim. Geriye bir model dönmem gerekiyor çünkü cshtml sayfam benden bir model bekliyor. Burada 17. satırda int? id kavramı var bu kavram bize buraya bir int değer gelebilir fakat gelmezsede sayfamı bozma yine bunu çalıştır şeklinde düşünülebilir. Burada id değeri null değil ise bunu modelime verdim boş isede 0 değerini atadım. Yani urlde /home/model/123 gibi değer gelirse id değerine 123 atanacaktır.

Burada yeşil ile renklendirilmiş kısım geriye dönen modeli yakalayıp alanları doldurabilirken üstteki kırmızılı kısım ise her seferinde boş gelecektir. Tag helper’a gelecek olursak;

Razor sayfasına bir özellik ekleyerek bunu gerçekleştirebiliyoruz ve gördüğünüz gibi yazabiliyoruz. Yine Html attributeleri gibi çalışmaktadır bu da.

 

 

 

Tarih:Asp.NET Core MVC

İlk Yorumu Siz Yapın

Bir cevap yazın

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