ASP.NET MVC TempData Nedir ?

Basitçe ifade etmek gerekirse, ASP.NET MVC TempData Controller Action’lar arası veri paylaşımı amacıyla kullanılır. TempData içindeki veriyi, okunana kadar veya kullanıcı oturumdan çıkış yapana kadar saklı tutar. TempData içinde veri saklanmasının, basit bir request işleminden fazlasına ihtiyaç duyulduğunda (örn; redirection senaryosu olabilir) önemi ortaya çıkar.

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.

[HttpPost] public ActionResult birseyyap(Customer c)
{ TempData["musteribilgisi"] = string.Format("Musteri Adresi{0}", c.Adres);
return RedirectToAction("Index");
}

Aşağıda herhangi bir view sayfasında kullanılacak razor kodlarımızı görebilirsiniz.

<div>
 @if (TempData["musteribilgisi"] != null) {

 <p>@TempData["musteribilgisi"]</p>

 }
</div>

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.

Muavenet

Web teknolojilerine merak salmış bir bilgisayar mühendisinin yazıları

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir