ViewData、ViewBag、TempData、Session的区别与联系
ASP.NET MVC中页面传值方法有 ViewData ViewBeg TempData Session 四种方法
-
ViewBeg其实是对ViewData的封装,内部则使用ViewData实现数据存储。
不同点是,ViewBeg可以存储动态类型的变量值,
而ViewData只能储存String Key/Object Value字典数组 -
TempData也是一个字典数组,不同的是存储的生命周期。ViewData和ViewBeg存储值只有Controller到View,如果发生页面跳转,值就不复存在,而TempData中的数据不仅在Controller
到View中有效,不同的Action之间或者Controller to Controller 依然有效 -
Session 也是一个字典数组,是存储在服务端的内存中或数据库,所以它的生命周期是最长