Asp.net MVC EditorTemplates Kavramı

26 Tem

ASP.NET MVC projelerinde HTML kontrollerine etki edebilmenin bir yöntemi de EditorTemplate oluşturmaktır. Model tarafında tanımlanan bir tipe ait bir property için özel şablon(template) hazırlamak mümkündür. Örneğin bool tipindeki bir değişkene karşılık radio button grubu, checkbox veya combobox oluşturmamızı sağlamaktadır.

Bunu bir örnekle açıklamak daha isabetli olacaktır.

Views/Shared dizini içerisine EditorTemplates adında bir dizin oluşturarak işe başlayabiliriz.

EditorTemplates içerisine de YesNo.cshtml adında bir partial view oluşturauyoruz. Bu partial view ile basit bir şekilde bir bool türüne ait combobox temsil etmeye çalışacağız. Örneğin bir kayıt sırasında kişiden alınan profil tipinin genel veya özel olduğu bilgisini temsil edebiliriz.

Eğer genel seçilirse true, özel seçilirse false dikkate alınacak.

Bu template nasıl kullanılacak?

Template kullanımı için bir model içerisindeki bool tipini UIHint attribute ile imzalamamız gerekecek. UIHint attribute parametresi olarakta template adını giriyoruz.

public class Register
{
     [UIHint("YesNo")]
     [Display(Name="Profil Türü")]
     public bool Accept { get; set; }
}

Bu sayede Register modelini kullanan view sayfalarında @Html.EditorFor(m=>m.Accept) şeklindeki ifadelerin yerine direk SelectList gelecek.

Sonuç: