首页 > Web开发 > 详细

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

时间:2014-03-19 23:31:38      阅读:565      评论:0      收藏:0      [点我收藏+]

本文转自 大卫Baby

ViewBag和ViewData其实是互通的
ViewBag和ViewData的区别:
ViewBag 不再是字典的键值对结构,而是 dynamic 动态类型,它会在程序运行的时候动态解析。

eg:

bubuko.com,布布扣
bubuko.com,布布扣
       ViewBag.NumberObjs = new string[] { "one", "two", "three" };
            ViewData["NumberArrs"] = new string[] { "one", "two", "three" };

            //正确,dynamic类型的解析作用,foreach可以使用
            foreach (var item in  ViewBag.NumberObjs)
            {
                
            }

            //错误: foreach语句不可作用于object类型对象上
            foreach (var item in ViewData["NumberArrs"])
            {

            }
bubuko.com,布布扣
bubuko.com,布布扣

ViewBag其实本质就是ViewData,只是多了层Dynamic控制。所以,使用何种方式完全取决于你个人的爱好。

 

ViewBag和ViewData仅针对当前Action中有效,生命周期和View相同。

TempData: 保存在session中,controller每次执行请求时,会从Session中获取Tempdata(),而后清除session,

获取完TempData数据,虽然保存在内部字典中。但字典中每个条目访问一次后就从字典中删除。因此Tempdata数据最多只能经过一次controller传递,并且每个元素最多只能访问一次。之后自动删除

MVC3中 ViewBag、ViewData和TempData的使用和区别,布布扣,bubuko.com

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

原文:http://www.cnblogs.com/abc8023/p/3612567.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!