Yeri gelmişken tanımınıda yapalım. Strongly-typed kelimesini, tipi kesin olarak belli anlamında çevirebiliriz. Yani değişken daha tanımlandığı anda tipi bellidir. Az çok kelimenin türkçe çeviriside fikir vermektedir. Bu tanımlamanın karşılığı ise weakly-typed dır. Sanırım örnekle açıklarsak, tam anlaşılacaktır.
Weakly-Typed
a = 2; b = "2"; birlestir(a, b); // sonuç 22 topla(a, b); // sonuç 4
Strongly-Typed
a = 2; b = "2"; birlestir(a, b); // tip uyumsuzluğu hatası topla(a, b); // tip uyumsuzluğu hatası birlestir(str(a), b); // sonuç 22 topla(a, int(b)); // sonuç 4
Bu bilgilerden sonra, ASP.NET MVC helper elemanlarını kullanırken tüm bunlar ne anlama geliyor. Önceki yazılarda bahsettiğimiz, helper elemanları, model ile eşleşirken string bir değer ile eşleşiyordu. Strongly-typed helper elemanlarını kullanarak, bu string değerle işimiz kalmaz ve lambda expression ile model eşleşmesini yapabiliriz.
View sayfasında en başta modelimizi tanımladık(@model Haber) ve modelin özelliklerini string bir değerle çağırdık. Şimdi aynı örnekleri strongly-typed helper elemanları ile yapalım.
@model Haber
@using (Html.BeginForm())
{
@Html.ValidationSummary(excludePropertyErrors: true)
@Html.LabelFor(m => m.KategoriId)
@Html.DropDownListFor(m => m.KategoriId, ViewBag.Kategoriler as SelectList)
@Html.ValidationMessageFor(m => m.KategoriId)
@Html.LabelFor(m => m.Baslik)
@Html.TextBoxFor(m => m.Baslik)
@Html.ValidationMessageFor(m => m.Baslik)
...
<input type="submit" value="Kaydet" />
}
Strongly-Typed helper elemanlarının sonunda "-For" soneki vardır. Gördüğünüz gibi, tanımlanan değişken, Haber nesnesinin bir örneği gibi davranır. Tanımlamalar yapılırken Intellisense açıktır ve modelin içerisindeki tüm özellikleri görebiliriz. Böylece compile-time zamanında hata takibi yapılabilir. Bu arada tüm HTML çıktıları, önceki yazılarda anlattığımız helper elemanları ile aynıdır.
Hiç yorum yok:
Yorum Gönder