TempData içindeki veriyi ve oturum durumunu default olarak kaydeder.
ASP.NET MVC TempData vs Sessions
En çok sorulan soruya geldik - ASP.NET MVC uygulamamda TempData ve Session seçeneklerinden hangisi tercih etmeliyim ?
Bu sorunun cevabı kullanım şeklinize göre değişir. TempData sadece kullanıcın oturumu için kullanılabilir, diğer yandan içindeki değer okunana kadar o değeri saklar fakat HTTP Request'in sonunda veriyi temizler ve içini boşaltır. Verinin iki istek arasındaki devamlılığı sağlaması gerektiğinde (örn; redireckt işlemi), TempData kullanılabilir.
TempData kullanım örneği ;
TempData'ya uygun bir senaryo kurgulayalım ve bir sayfada müşterinin verisini tutan bir TempData olduğunu varsayalım.
[code lang="js"]
[HttpPost] public ActionResult birseyyap(Customer c)
{ TempData["musteribilgisi"] = string.Format("Musteri Adresi{0}", c.Adres);
return RedirectToAction("Index");
}
[/code]
Aşağıda herhangi bir view sayfasında kullanılacak razor kodlarımızı görebilirsiniz.
[code lang="js"]
<div>
@if (TempData["musteribilgisi"] != null) {
<p>@TempData["musteribilgisi"]</p>
}
</div>
[/code]
Yukarıda ki örnekte neden TempData kullandık ?
Bir action RedirectToAction sonucunu döndürdüğünde HTTP redirect meydana gelir. ViewBag bir yönlendirme işlemi gerçekleştirildiği için ve yürütülen HTTP Request işleminden sonra veriyi koruyamayacağından veya tutamayacağından dolayı bu senaryoda uygulanamaz. Benzer şekilde Sessionların, işlevini yerinigetirdikten sonra silinmesi gerekiyor. HTTP yönlendirme isteğimni gerçekleştiren bu senaryo için en iyisi TempData kullanmaktır. Veri yönlendirilen kullanıcıya gösterildikten veya okutulduktan sonra kendiliğinden siliniyor.
Hiç yorum yok:
Yorum Gönder