ASP.NET MVC-ViewData、ViewBag、TempData

  • 107
  • 0
  • 2021-01-26

寫程式也一段時間,一直沒去搞懂一些東西

認真下定決心要去弄懂一些基礎知識

如有說錯也可以糾正<(-_-)>

1.ViewData

ViewData回傳的是一個ViewDataDictionary型別物件,而ViewDataDictionary又繼承IDictionary<string,object>介面

所以使用ViewData透過key值存取,而且可以是任何型別的資料

但是他無法傳遞到其他的Action,也就是說一個Action跑完他就不見了

存取方式,ViewData["Name"]

2.ViewBag

ViewBag是回傳一個dynamic型別

可以傳遞任何型的物件,跟ViewData一樣,無法傳遞到其他的Action,也就是說一個Action跑完他就不見了

存取方式,ViewBag.Name

3.TempData

他是存在session裡

跟上面兩個有不太一樣,TempData可以傳遞至其他的Action,但是再取值之後就會自己消失

如果要保留的話,要再取道後,立刻使用TempData()方法保留

存取方式,TempData["Name"]