İçeriğe geç

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…

4.5 4 votes
Article Rating
Tarih:Asp.Net - MVC
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x