Asp.Net MVC 3 Razor View Engine’inde Encapsulation nedir, nasıl yapılır inceleyelim.
Asp.Net MVC 3 Razor’da Encapsulation’ın amacı, bir kere yazılan bir kod bloğunun tekrar yazılmadan kullanılmasını sağlamaktır. Programlama dilindeki fonksiyon mantığı gibi düşünebilirsiniz. Birçok yerde kullanacağımız bir işlemi bir fonksyion haline getirip gönderdiğimiz parametrelere göre sonuç alıyoruz. Burada da gönderdiğimiz parametreye göre sonuç veren bir “helper” yapısı bulunmaktadır. Bu işlemi bir örnek üzerinde daha detaylı inceleyelim.
Yeni bir Asp.Net MVC 3 Web Application – Internet Application oluşturalım. Projemizde YazılımDevi.Com’un yazarları ve makale sayılarını ekranda yazdıralım. Bunun için önce Yazar isminde bir model oluşturalım.
Yazar.cs
public class Yazar
{
public string AdSoyad { get; set; }
public int MakaleSayisi { get; set; }
}
|
Şimdi HomeController.cs’ye gidelim ve About() methodumuzun kodunu aşağıdaki şekilde düzenleyelim.
HomeController.cs
public ActionResult About()
{
List<Yazar> yazarlar = new List<Yazar>
{
new Yazar{ AdSoyad = "Engin Demiroğ", MakaleSayisi=131},
new Yazar{ AdSoyad = "Veysel Uğur Kızmaz", MakaleSayisi=105},
new Yazar{ AdSoyad = "Salih Demiroğ", MakaleSayisi=55},
new Yazar{ AdSoyad = "Tolga Ayas", MakaleSayisi=54},
new Yazar{ AdSoyad = "Ahmet Sait Duran", MakaleSayisi=32},
};
return View(yazarlar);
}
|
About View’ına gidelim ve aşağıdaki şekilde düzenleyelim.
About.cshtml
@helper YazarListesi(List<M_vc3Deneme.Models.Yazar> yazarlar){
@:Yazar Listesi
<ul>
@foreach (var yazar in yazarlar)
{
<li>@yazar.AdSoyad - @yazar.MakaleSayisi</li>
}
</ul>
<text>Yazar listesi sonu</text>
}
<div>@YazarListesi(Model)</div>
|
- @helper keywordü ile bir helper (az önce bahsettiğimiz fonksiyon)’u oluşturuyoruz. Bu helper’a bir isim veriyoruz (YazarListesi) ve List<Yazar> tipinde bir parametre almasını söylüyoruz.
- @: ile ekranda “Yazar Listesi” string ifadesini yazdırıyoruz.
- Foreach ile tek tek yazar’ın adı ve makale sayısını yazdırıyoruz.
- En sonunda <text></text> ile “Yazar listesi sonu” ifadesini yazdırıyoruz.
Projemizi çalıştırdığımızda aşağıdaki ekran çıktısını alacağız.
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi