关于TempData 、ViewBag和ViewData
2013-12-20 16:36
169 查看
其实我个人觉得他们都是一样的。
如果你使用的TempData 、ViewData用ViewBag的方式调用也是一样的效果
反之亦然。。。
例如:ViewBag.Message和ViewData["Message"]
public ActionResult Index() { ViewBag.Message = "Hello World"; // ViewData["Message"] = "Hello World"; return View(); }
View代码不变运行效果一样。。。反复调试效果都是一样的。。
TempData、ViewData和ViewBag异同:
TempData ViewData ViewBag都可以用来保存数据。
它们之间的区别如下:
TempData:保存在Session中,Controller每次执行请求的时候,会从Session中先获取TempData,而后清除Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删除。具体代码层面,TempData获取过程是通过SessionStateTempDataProvider.LoadTempData方法从ControllerContext的Session中读取数据,而后清除Session,故TempData只能跨Controller传递一次。
ViewData:生命周期和View相同,仅对当前View有效。
ViewBag:和ViewData生命周期相同,也是对但前View有效,不同的是ViewBag的类型不再是字典的键值对结构,而是dynamic动态类型,属于MVC3里面新增的部分。
相关文章推荐
- Zend的MVC机制使用分析(二)
- ASP.NET MVC 4 捆绑和缩小实例介绍
- ASP.NET MVC小结之基础篇(一)
- Flex中最好的MVC框架Mate框架
- ASP.NET MVC学习笔记
- 关于php mvc开发模式的感想
- php打造属于自己的MVC框架
- 使用ASP.NET MVC 4 Async Action+jQuery实现消息通知机制的实现代码
- mvc下,3种窗口弹出设置的方法
- ASP.NET MVC运行出现Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解决方法
- PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
- Zend的MVC机制使用分析(一)
- ASP.NET MVC 中实现基于角色的权限控制的处理方法
- Coolite Cool Study 3 MVC + Coolite 的实现代码
- 一个基于Asp.Net MVC的权限方案
- ASP.NET MVC使用Ajax的辅助的解决方法
- PHP MVC模式在网站架构中的实现分析
- Spring MVC中基于自定义Editor的表单数据处理技巧分享
- 扩展ASP.NET MVC三层框架且使用StructureMap实现依赖注入1-Model层
- 浅谈 MVC、MVP 和 MVVM 架构模式