MVC’de Layout’a VeriTaşıma-Aktarma

MVC’de en çok sorulan soru muhtemeldir ki “Mvc’de usercontrol’lere nasıl data taşırım?” sorusudur. Bu makalede bununla ilgili olması gereken iyi bir çözüm sunacağım. Önce kendimize bir senaryo çizelim bir e-ticaret sitemiz var ve ürün kategorilerini tüm sayfalarda listelemek istiyorsunuz. Bu durumda ne yaparız ya kategoriler diye bir usercontrol yaratıp onu masterpage’imizin içine koyarız yada direk olarak masterpage’de datayı listeleriz. Sanırım UserControl yaratıp MasterPage’de onu çağırmak daha temiz bir kod düzeni sağlayacaktır bizlere. Bildiğiniz gibi datalarımızı taşıyan ve işleyen katmanımız MVC’de Controller katmanıdır. Biz şimdi öyle bir sınıf yazacağız ki sitedeki tüm controller’den bize kategoriler data’sı otomatik olarak gelicek. Burada inheritance’dan faydalanacağız.

image

Fark edebileceğiniz gibi yukarıda yazılı olan sınıf bir abstract sınıftır ve Controller sınıfından türemiştir. Yani herhangi bir Controller’dan tek farkı abstract olarak tanımlanmasıdır. Şimdi işimiz artık bitti diyebiliriz bundan sonra yapacağımız tek şey bunun dışında oluşturacağınız controller’ları Controller sınıfından değil de şimdi yarattığımız abstract sınıf olan GenelController’dan türeteceğiz. Böylece her Controller’da otomatik olarak ViewData[“kategoriler”] nesnesi oluşacak. Artık istediğiniz sayfada ViewData[“kategoriler”] diyerek ürün kategorilerinize sahip olabilirsiniz. İyi çalışmalar, umarım yardımcı olabilmişimdir.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s