Asp.net MVC Controller’dan View’a Veri Gönderme
Asp.net MVC Controller’dan View’a Veri Nasıl Gönderilir ? Hangi yollarla gönderilir ? ViewData ile TempData’nı farkı nedir ?
Controller’dan Viewa veri göndermenin bir çok yolu bulunmakta bu yazımızda ViewBag,ViewData,TempData kavramlarına odaklanıyor olacağız ve kavramları arası farklılıklar nelerdir.
Örnek üzerinden anlatmak gerekirse daha anlaşılır olacaktır , Öncelikle HomeController adında bir controller ve bir view oluşturuyorum.
İlk önce ViewData‘yı görelim. Bu özellikte [key,value] yapısıyla çalışmaktadır istediğimiz data,anahtarın viewa taşınmasını sağlar. Kullanımı ise gayet basittir ;
Controller Tarafında : ViewData[“SiteName”] = “CtrlDelete.Net”
View Tarafında : @ViewData[“SiteName”]
Diğer bi yöntem ViewBag;
Controller Tarafında : ViewBag.SiteName = “CtrlDelete.Net”
View Tarafında : @ViewBag.SiteName
Bir diğer yöntem TempData;
Controller Tarafında : TempData[“SiteName”] = “CtrlDelete.Net”
View Tarafında : @TempData[“SiteName”]
Peki ViewData ile TempData’nı farkı nedir ?
TempData ile tutulan veriler başka bir action’a eğer yönlendiğinde TempData halen saklanmış olur. Örneğin bir link ile başka bir sayfaya yönlendirme yaparsanız ViewData ile ViewBag kullanılamayacaktır. Ancak TempData saklanmaktadır oda 1 sayfa yönlendiğinde tutmaktadır. 2. bir sayfaya yönlendirildiğinde oda silinmektedir. Mrnek vermek gerekirde Index sayfasındasınız bir linke tıklayıp About sayfasına gittiniz TempData halen saklanmaktadır , About sayfasında bir linke tıklayıp Register sayfasına gittiğinizde TempData’da silinicektir.