MVC ViewBag ve ViewData Farkları, Ortak Noktaları

Aslına bakarsanız ViewBag ve ViewData arasında bilindik aman aman bir fark bulunmamaktadır. Tanım Syntax’ları biraz farklı olsa da sonuç itibariyle yaşam döngüleri tek seferliktir ve kesinlikle ikince postback işleminde yaşayamamaktadırlar.

Niye iki adet farklı tip var diyecek olursak aslında sebebi ViewData’nın MVC 2, ViewBag’in ise MVC 3 ile karşımıza çıkmış olmasıdır. Şüphesiz ki ViewData’dan ViewBag’e geçişte daha kolay bir kullanım şekli amaçlanmıştır.

Kullanım Şekilleri ise aşağıdaki gibidir;

ViewData["Icerik"] = "Merhaba Dünya :)"

ViewBag.Icerik = "Merhaba Dünya :)"

şeklindedir.

View tarafında görüntüleri ise aşağıdaki şekilde alınabilmektedir;

@ViewData["Icerik"]

@ViewBag.Icerik

Son olarak ViewData’nın en büyük dezavantajından bahsedecek olursak; Eğer içerisinde bir sınıf yüklü şekilde veri taşıyorsak ve bu veriyi for/foreach gibi bir döngüde kullanacak isek gereksiz yere unboxing yapmak zorunda kalmamızdır. Örn;

@foreach(var item in (List<IcerikView>)ViewData["Icerik"])
{
@item.Ad
@item.Soyad
}

Ancak ViewBag ‘de bu farklıdır;

@foreach(var item in ViewBag.Icerik)
{
@item.Ad
@item.Soyad
}

Aslında bence en büyük dezavantaj demeliydim. Zira gereksiz kod kalabalığını sevmem 🙂

Umarım faydalı olmuştur. İyi çalışmalar dilerim…

Share this Story

Related Posts

Kimler Neler Demiş?

avatar
  Subscribe  
Bildir

Search