MVC ViewData与ViewBag的区别

一、ViewData

  1、ViewData派生自ViewDataDictionary,所以它具有字典的属性,例如:ContainsKey 、Add 、Remove 和 Clear ;

  2、字典键值是字符串类型,所以可以带空格,例如ViewData["a  b"];

  3、在视图中,只有string类型的值才能直接使用,其他的必须强制转换;

二、ViewBag

  1、ViewBag派生自 DynamicViewData,所以它可以使用‘ ‘.‘用法(ViewBag.A="张三"),它是动态类型,不用强制转换;

  2、ViewBag 的语法使添加到控制器和视图的速度更快;

  3、更易于检查 NULL 值。 示例: @ViewBag.Person?.Name;

原文地址:https://www.cnblogs.com/LimGo/p/10354932.html

时间: 2024-07-29 15:39:04

MVC ViewData与ViewBag的区别的相关文章

mvc中viewdata 和viewbag的区别

mvc中viewdata 和viewbag的区别 2013-06-18 15:43:45|  分类:          MVC                          |举报        |字号 订阅 ViewData                                                                           ViewBag 它是Key/Value字典集合                                     

asp.net mvc ViewData 和 ViewBag区别,TempData

ViewData 和 ViewBag都是页面级别的生命周期,TempData--Passing data between the current and next HTTP requests TempData默认是实现方式--存在session中,所以结论很简单,能不用就不用..要么负载时就麻烦了. Passing data between the current and next HTTP requests - See more at: http://www.rachelappel.com/w

ASP.net MVC+ViewData VS ViewBag

     在使用MVC框架的过程中,往界面传值,我们使用的ViewData,如ITOO部分代码图解:      当然除了ViewData,我们还可以使用同卵兄弟(ViewBag)来完成同样的功能,详情demo: 我们先看看常用的ViewData的Controller和View以及运行情况: Controller简易代码: public ActionResult Index() { //定义了一个集合Fruits List<string> Fruits = new List<string&

MVC ViewData和ViewBag[转]

转自:http://blog.csdn.net/a497785609/article/details/7854402#t0 视图数据可以通过ViewBag属性访问,它主要是为了从Controller到view进行传值用的,类似有所使用的ViewData[] 字典类.对于ViewBag是如此的强大,意味着你能动态的set/get 值,增加任何数量的的额外字段而不需要强类型的检测.如: Controller ? public  ActionResult Index() { List<string>

MVC ViewData和ViewBag

视图数据可以通过ViewBag属性访问,它主要是为了从Controller到view进行传值用的,类似有所使用的ViewData[] 字典类.对于ViewBag是如此的强大,意味着你能动态的set/get 值,增加任何数量的的额外字段而不需要强类型的检测.如: Controller public  ActionResult Index() { List<string> colors = new  List<string>(); colors.Add("red")

MVC Controller向View传值(ViewData与ViewBag)

最近在开发项目中,使用的是ASP.NET MVC由于之前并没有接触,对于它的传值方式有些陌生,在这里进行初步总结积累学习! 一:使用 ViewData使用: public ActionResult Index() { List<string> colors = new List<string>(); colors.Add("red"); colors.Add("green"); colors.Add("blue"); Vi

ASP.NET MVC程序传值方式:ViewData,ViewBag,TempData和Session

转载原地址 http://www.cnblogs.com/sunshineground/p/4350216.html 在ASP.NET MVC中,页面间Controller与View之间主要有以下几种小量数据的传值方式:ViewData.ViewBag.TempData和Session变量. 下面就这四种传值方式做出详细介绍. 一.ViewData ViewData是一个继承自ViewDataDictionary类的Dictionary对象,它只能存储String Key/Object Valu

Asp.net MVC的ViewData与ViewBag以及TemplateData的使用与区别

ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从Asp.net MVC 1 就有了 ASP.NET MVC3 才有 基于Asp.net 3.5 framework 基于Asp.net 4.0与.net framework ViewData比ViewBag快 ViewBag比ViewData慢 在ViewPage中查询数据时需要转换合适的类型 在ViewPage中查询数据时不需要类型转换 有一些类型转换代码 可读性更好 参考:http://www.c

MVC传递Model之TempData、ViewData、ViewBag区别及用途

MVC使用过程中经常会用到TempData.ViewData.ViewBag三种方式,这三种什么区别呢? TempData:默认存储于Session中,可通过继承ITempDataProvider接口改变, 生命周期:经过一次Controller传递就失效,即View读取一次后对应的TempData即从TempData集合中删除,不过如果TempData未被View读取之前,其值可在Controller之间传递.PS:如果你不想TempData使用后就删除,您可以通过TempData.Peek(