MVC中 ViewBag、ViewData和TempData区别
MVC3中 ViewBag、ViewData和TempData的使用和区别
public dynamic ViewBag { get; }
public ViewDataDictionary ViewData { get; set; }
ViewBag和ViewData其实是互通的 ViewBag和ViewData的区别: ViewBag 不再是字典的键值对结构,而是 dynamic 动态类型,它会在程序运行的时候动态解析。
eg:

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"])
{ }

ViewBag其实本质就是ViewData,只是多了层Dynamic控制。所以,使用何种方式完全取决于你个人的爱好。
ViewBag和ViewData仅针对当前Action中有效,生命周期和View相同。
TempData: 保存在session中,controller每次执行请求时,会从Session中获取Tempdata(),而后清除session,
获取完TempData数据,虽然保存在内部字典中。但字典中每个条目访问一次后就从字典中删除。因此Tempdata数据最多只能经过一次controller传递,并且每个元素最多只能访问一次。之后自动删除
。详情请看:http://www.cnblogs.com/tristanguo/archive/2009/04/06/1430062.html
MVC中 ViewBag、ViewData和TempData区别的更多相关文章
- mvc4中viewbag viewdata 和 tempdata的区别
ViewBag 不再是字典的键值对结构,而是 dynamic 动态类型,它会在程序运行的时候动态解析. eg: ViewBag.NumberObjs = new string[] { "on ...
- Asp.net MVC中的ViewData与ViewBag
Asp.net MVC中的ViewData与ViewBag 在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下: ViewData ViewBag 它 ...
- MVC中Model和model的区别和用户
MVC中Model和model的区别,它们应该怎么用呢? 使用@model关键字可以定义一个Action里所对应的一个模型(经常可以叫他实体类). MVC的第一个字母M是Model,承载着View层和 ...
- 浅谈 MVC中的ViewData、ViewBag和TempData
ViewBag和TempData的区别 ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从Asp.net MVC 1 就有了 ASP.NET MVC3 才 ...
- MVC中的ViewData、ViewBag和TempData
一.ViewBag和ViewData的定义 public dynamic ViewBag { get; } public ViewDataDictionary ViewData { get; set; ...
- ASP.NET MVC 中的ViewData与ViewBag
在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下: ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从 ...
- Asp.net MVC中的ViewData与ViewBag(转)
在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下: ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从 ...
- [转]Asp.net MVC中的ViewData与ViewBag
本文转自:http://www.cnblogs.com/wintersun/archive/2012/01/21/2328563.html 在Asp.net MVC 3 web应用程序中,我们会用到V ...
- .NET/MVC-ViewBag、ViewData、TempData区别
1.ViewData ViewData的生命周期和View相同, 只对当前View有效. 2.TempData TempData保存在Session中, Controller每次执行请求的时候会从Se ...
随机推荐
- 配置github上的SSH key及上传自己的项目到github
这篇文章比较好,链接如下:http://www.jianshu.com/p/b81eeb5d7858 需要指出的几点:1.
- Redis客户端之Spring整合Jedis
1.下载相关jar包,并引入工程: jedis-2.4.2.jar commons-pool2-2.0.jar 2.将以下XML配置引入spring <bean id="shard ...
- Linux 配置jdk环境变量
1.首先去官网下载所需版本的jdk,必须是.linux下的安装版本. 2.解压到以文件下 3.vim /etc/profile or ~/.bashrc 添加如下环境配置 JAVA_HOME=/usr ...
- Redis 五:配置主从复制功能
redis的主从复制事实上是非常简单的一件事情,甚至比mysql的配置还简单,因为基本不需要在主服务器上做任何操作 我们在同一台服务器上开不同的端口进行测试操作(安装部分就不说啦,前面的文章有::) ...
- 浅谈HAL
参考:http://blog.csdn.net/mr_raptor/article/details/8074549 代码实现:http://blog.csdn.net/mr_raptor/articl ...
- SQL Server实现数据的递归查询
在一次项目中遇到一种需求,需要记录某产品的替换记录. 实际应用举例为:产品101被201替换,之后201又被303替换,303又被109替换:产品102被202替换,之后202又被105替换. 现在我 ...
- Swift计算文本宽高
iOS 8 开始可以配合 AutoLayout 自动估算文本的高度,但是当 Cell 比较复杂的时候,还会需要手动去计算.首先声明一个样式 var TextStyle : [String : NSOb ...
- (转)redis 学习笔记(1)-编译、启动、停止
redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...
- Powershell下设置环境变量
NODE中经常会用到process.env.NODE_ENV来判断当前环境,因为使用的系统是windows,在sublime text下安装terminal插件后,默认启动的时Powershell, ...
- 最基础的Hash
type thash=^node; node=record state:longint; next:thash; end; var a,i:longint; p:thash; hash:..]of t ...