MVC3中 ViewBag、ViewData和TempData的使用和区别

https://www.cnblogs.com/May-day/p/5358108.html

一,在VS2013中表明,viewBag,ViewData和TempData的定义,ViewBag 是动态类型(dynamic),ViewData 是一个字典型的(Dictionary),而TempData这是临时字典

MVC3中 ViewBag、ViewData和TempData的使用和区别
MVC3中 ViewBag、ViewData和TempData的使用和区别

二,viewBag和ViewData的区别

<1>在控制器中的代码
MVC3中 ViewBag、ViewData和TempData的使用和区别

MVC3中 ViewBag、ViewData和TempData的使用和区别

<2>视图代码:
MVC3中 ViewBag、ViewData和TempData的使用和区别
MVC3中 ViewBag、ViewData和TempData的使用和区别在这个时候显示出来的效果是一样的

ViewBag
与ViewData 赋值和调用的方法不一样
MVC3中 ViewBag、ViewData和TempData的使用和区别

MVC3中 ViewBag、ViewData和TempData的使用和区别

MVC3中 ViewBag、ViewData和TempData的使用和区别
MVC3中 ViewBag、ViewData和TempData的使用和区别

<3>viewBag和ViewData的区别

1,在控制器中的代码

MVC3中 ViewBag、ViewData和TempData的使用和区别

2,在视图中的代码
MVC3中 ViewBag、ViewData和TempData的使用和区别

3,同时这样写,他们的显示效果也是一样的,但是这样就是动态类型和字典型的区别
MVC3中 ViewBag、ViewData和TempData的使用和区别

三,TempData: 临时字典。可用于在Action执行过程之间传值。在执行Action的,将数据存放在TempData中,在下一次Action执行过程中可以使用TempData中的数据,但是TempData只会保存一次,在执行第三次Action则会显示为null。

<1>控制器中的代码:
MVC3中 ViewBag、ViewData和TempData的使用和区别

<2>视图中的代码,在About.cshtml:
MVC3中 ViewBag、ViewData和TempData的使用和区别

<3>当执行Index.cshtml时,然后跳转到About.cshtml,则TempData[“temp”]会显示,而当你刷新这个页面时,则TempData[“temp”]为空

1/ 先登录 test
MVC3中 ViewBag、ViewData和TempData的使用和区别
2/ 换到 about.cshtml 页
MVC3中 ViewBag、ViewData和TempData的使用和区别
3 刷新后
MVC3中 ViewBag、ViewData和TempData的使用和区别