Merhaba arkadaşlar.
Bu makalemizde sizler ile WiewData, ViewBag ve TempData konularını işleyeceğiz.
public ViewDataDictionary ViewData { get; set; }
//Doğru Kullanım
1- string demo = (string)ViewData["demo"];
2- string demo = ViewData["demo"] as string;
//Hatalı
string demo=ViewData["demo"];
Hemen basitçe bir örnek yapalım.
Oluşturduğumuz ActionResult içerisine bir ViewData attık ve değer olarak string bir ifade yerleştirdik.
public ActionResult Index()
{
ViewData["SiteName"] = "MvcSharp.com";
return View();
}
Veriyi ekrana direk basabilir veya bir değişkende tutabilirsiniz.
@{
string demo = (string)ViewData["demo"];
<span>@demo</span>
}
@{
string demo = ViewData["demo"] as string;
<span>@demo</span>
}
<span>@ViewData["demo"]</span>
6. maddeye dikkat arkadaşlar hemen bir örnekle gösterelim.
@{
string demo = ViewBag.Demo;
<span>@demo</span>
}
Evet arkadaşlar yukarıdaki kod bloğu ile ViewData için yazdığımız örnek kodu karşılaştırdığımızda farkı göreceksiniz.
ViewData da verinin tipini bildirme zorunluluğu varken ViewBag'da böyle bir mecburiyetimiz yoktur.
public TempDataDictionary TempData { get; set; }
public ActionResult Index()
{
TempData["temp"] = "Temp";
return Redirect("/demo/test");
}
public ActionResult Temp()
{
var TData = TempData["temp"] as string;
return View();
}
Veriyi korumak için Keep("Anahtar Kelime") methodunu kullanabilirsiniz böylece TempData içerisindeki verinin imhasını erteleyebiliriz;
TempData.Keep("temp");
string KullanimBir = TempData["temp"] as string;
string KullanimIki = (string)TempData["temp"];
string HataliKullanim = TempData["temp"];
Kaynak : http://www.dotnet-tricks.com/Tutorial/mvc/9KHW190712-ViewData-vs-ViewBag-vs-TempData-vs-Session.html
Umarım faydalı bir paylaşım olmuştur.
Saygılarımla Fatih BÜLBÜL.
Facebook Üzerinden Yorumlar