ASP.NET MVC | ETicaret ve İçerik Yönetimi Türkçe Açık Kaynak Kodlu / Razor / ViewBag, ViewData ve TempData ASP.NET MVC 3 Kullanımı ve Farkları
ViewBag, ViewData ve TempData ASP.NET MVC 3 Kullanımı ve Farkları
Asp.net mvc ile birlikte gelen ViewBag , ViewData ve TempData özellikleri, sıklıkla ne zaman hangisini kullansak daha iyi, yada hangisi performans için daha avantajlı gibisinden sorularıda beraberinde getiriyor. Sebebi ise ViewBag , ViewData ve TempData kullanımlarının birbirlerine çok yakınlığıdır.
ViewBag , ViewData ve TempData ; Bu üç asp.net mvc nesnesi belirgin özelliği küçük boyutlardaki verilerimizi Controller dan View kısmına aktarmak için kullanırız.
Bu makelemizde aradaki farkı biraz daha asp.net mvc 3 ile yazılmış olan kodda izah etmeye çalışacağım.
Öncelikle ViewData ve ViewBag aynı çalışma mantığına sahip olmakla beraber ViewData ; asp.net mvc, asp.net mvc 2 ve asp.net mvc3 de çalışmaktadır. Fakat ViewBag asp.net mvc 3 ile birlikte gelen yeni ve runtime içerisinde oluşan dinamik bir asp.net mvc 3 nesnesidir. ViewData kullanımında köşeli parentez içerisine (ViewData["Test"] ) içerisine yazdığımız anahtar kelime ( key = Test) sayesinde diğer ViewData lardan ayırmış oluruz. ViewData nesneside birden fazla farklı nesne ayırmasını ViewDataDictionary sınıfı aracılıyla, "key/value" syntax sayesinde çözümlemiş olur.
TempData ise çok basit bir çalışma mantığı vardır. Bunu kısaca açıklamak gerekirse herhangi Controller dan oluşturulmuş olan veriyi Views ler arasında taşımamıza veya tek bir View içerisinde elimizdeki veriyi ekran çıktısı olarak görüntüler.
Yeri gelmişken deyinmek istiyorum, Eğer ki büyük bir nesneyi Controller dan Views göndermemiz gerecekse; mesale, raporlama gibi büyük boyutlardaki verilerimiz için ViewModels kullanmalıyız.
ViewBag , ViewData ve TempData çalışma senoryası olarak şekil -1 -2 -3 deki gibi çalışmaktadır.
ViewBag , ViewData ve TempData aralarındaki en büyük fark ise TempData nesnesini eğer ki bir daha kullanmak istersek bir sonraki redirek ettiğimiz actionda herhangi bir işleme mağruz kalmadan kullanabiliriz. Fakat ViewBag ve ViewData nesnelerine ulaşamayız. Şekil-4-5-6 dada bununla ilgili koddaki küçük bir değişiklik ile RedirectResult(@"~\Home\About\"); TempData nesnesine tekrar ulaşmamız mümkündür.
Önemli Not: TempData nesnesine gönderdiğimiz her veri adından da anlaşıldığı gibi geçici olduğundan, projemizde ilgili web sayfamız eğer ki tekrardan postback olursa veriye tekar ulaşamayız.Bu örnekteki, Test için tekrardan şekil-6 daki sayfayı ( F5 ) yenilersek, TempData nesnesinin kaybolduğunu görürüz.
Makalemizle ilgili soru ve önerileriniz için yorum yazmayı unutmayınız.
Kod indir : ViewBag, ViewData ve TempData ASP.NET MVC 3 Kullanımı
Yazar: ibrahim uğur yılmaz
Tarih: 15.5.2018 14:52:39
İsim: ibrahim uğur yılmaz
Tarih: 2.3.2019 18:51:39
Tarih: 15.5.2018 10:40:14
Abı Allah aşkına bu yazıları düzgün yazın. ne anlattığınız belli değil. Net olarak ViewBag ile ViewData arasındaki farkı bulamadık. Nedir bu ikisinin farkı. ne zaman hangi örnekte kullanabiliriz.
Tarih: 2.3.2019 18:53:43
Öncelikle ViewData ve ViewBag aynı çalışma mantığına sahip olmakla beraber ViewData ; asp.net mvc, asp.net mvc 2 ve asp.net mvc3 de çalışmaktadır. Fakat ViewBag asp.net mvc 3 ile birlikte gelen yeni ve runtime içerisinde oluşan dinamik bir asp.net mvc 3 nesnesidir.
Tarih: 10.5.2016 22:54:34
Tarih: 11.10.2016 10:54:20
Biz de ilginiz için teşekkür ederiz.
Güvenlik Kodunu Giriniz: 96
asp.net mvc razor nedir ?