ViewData ,ViewBag ,TempData
KAYNAK
https://www.c-sharpcorner.com/blogs/viewdata-vs-viewbag-vs-tempdata-in-mvc1
tanıtım
ViewData ve ViewBag aynı amaç için kullanılır -- denetleyiciden görüntülemeye veri aktarmak için. ViewData, bir nesneler sözlüğünden başka bir şey değildir ve anahtar olarak dize ile erişilebilir. ViewData, ViewDataDictionary sınıfının bir örneğini ortaya çıkaran bir denetleyici özelliğidir. ViewBag, ViewData'ya çok benzer. ViewBag dinamik bir özelliktir (.net framework 4.0'da tanıtılan dinamik anahtar kelime). ViewBag, dinamik olarak değer ayarlayabilir ve alabilir ve güçlü yazılanlara dönüştürmeden herhangi bir sayıda ek alan ekleyebilir. ViewBag, ViewData'nın etrafındaki yalnızca bir sarıcıdır.
ViewData Örneği
ViewBag Örneği
TempData, TempDataDictionary sınıfından türetilmiş bir sözlüktür. TempData, tıpkı canlı oturum gibi kısa süreli olarak depolanan verilerdir. TempData, HTTP İsteği zamanı için verileri tutar; bu, verileri ardışık iki istek arasında tuttuğu anlamına gelir. TempData, denetleyiciler veya eylemler arasında veri aktarmamıza yardımcı olur. TempData, dahili olarak Oturum değişkenlerini kullanır. TempData'nın yalnızca geçerli ve sonraki istek sırasında çalıştığını unutmayın. Genellikle tek seferlik mesajları saklamak için kullanılır. TempData.Keep() yönteminin yardımıyla, istek tamamlandıktan sonra TempData nesnesindeki değeri tutabiliriz.
TempData Örneği
ViewData VS ViewBag VS TempData
Veriyi gör | Çantayı Görüntüle | TempData |
Anahtar-Değer Sözlüğü koleksiyonudur | Bu bir tür nesnesidir | Anahtar-Değer Sözlüğü koleksiyonudur |
ViewData bir sözlük nesnesidir ve ControllerBase sınıfının özelliğidir. | ViewBag, ControllerBase sınıfının Dynamic özelliğidir. | TempData bir sözlük nesnesidir ve controllerBase sınıfının özelliğidir. |
ViewData, ViewBag'den Daha Hızlıdır | ViewBag, ViewData'dan daha yavaştır | NA |
ViewData, MVC 1.0'da sunulmuştur ve MVC 1.0 ve üzeri sürümlerde mevcuttur | ViewBag, MVC 3.0'da tanıtıldı ve MVC 3.0 ve üzeri sürümlerde mevcut | TempData ayrıca MVC1.0'da tanıtılmıştır ve MVC 1.0 ve üzeri sürümlerde mevcuttur. |
ViewData ayrıca .net çerçevesi 3.5 ve üzeri ile çalışır | ViewBag yalnızca .net çerçevesi 4.0 ve üstü ile çalışır | TempData ayrıca .net çerçevesi 3.5 ve üzeri ile çalışır |
Numaralandırma sırasında Tür Dönüştürme kodu gerekli | Derinlemesine, ViewBag dinamik olarak kullanılır, bu nedenle numaralandırma sırasında dönüştürme yazmaya gerek yoktur. | Numaralandırma sırasında Tür Dönüştürme kodu gerekli |
Yeniden yönlendirme gerçekleşmişse değeri null olur. | ViewData ile aynı | TempData, ardışık iki istek arasında veri iletmek için kullanılır. |
Yalnızca geçerli istek sırasında bulunur. | ViewData ile aynı | TempData yalnızca geçerli ve sonraki istek sırasında çalışır |
Çözüm
Üç seçeneğimiz var: Verileri denetleyiciden görüntülemeye ve sonraki istekte geçirmek için ViewData, ViewBag ve TeampData. ViewData ve ViewBag neredeyse benzerdir ve verileri denetleyiciden görüntülemeye aktarmamıza yardımcı olurken, TempData ayrıca mevcut ve sonraki istekler sırasında da çalışır.
Hiç yorum yok