MVC ViewData和ViewBag

视图数据可以通过ViewBag属性访问,它主要是为了从Controller到view进行传值用的,类似有所使用的ViewData[] 字典类。对于ViewBag是如此的强大,意味着你能动态的set/get 值,增加任何数量的的额外字段而不需要强类型的检测。如:

Controller

public  ActionResult Index()

{

List<string> colors = new  List<string>();

colors.Add("red");

colors.Add("green");

colors.Add("blue");

ViewData["listColors"] = colors;

ViewData["dateNow"] = DateTime.Now;

ViewData["name"] = "Hajan";

ViewData["age"] = 25;

return  View();

}

Controller


1

2

3

4

5

6

7

8

9

10

11

12

13

public  ActionResult Index()

{

List<string> colors = new  List<string>();

colors.Add("red");

colors.Add("green");

colors.Add("blue");

ViewBag.ListColors = colors; //colors is List

ViewBag.DateNow = DateTime.Now;

ViewBag.Name = "Hajan";

ViewBag.Age = 25;

return  View();

}

 你和上面的对比 你看见了不同吗?

View

对应前台视图:

1.使用ViewData

<p>

My name is <b>@ViewData["name"] </b>,

<b>

<br />

I like the following colors:

</p>

<ul id="colors">

@foreach (var color in ViewData["listColors"] as List<string>)

{

<li><font color="@color">@color </font></li>

}

</ul>

<p>

@ViewData["dateNow"]

</p>

2.使用ViewBag

<p>

My name is <b>@ViewBag.Name</b>, <b>@ViewBag.Age</b> years old.

<br />

I like the following colors:

</p>

<ul id="colors">

@foreach (var color in ViewBag.ListColors)

{

<li><font color="@color">@color</font> </li>

}

</ul>

<p>

@ViewBag.DateNow

</p>

效果图:

ViewBag、ViewData 和 TempData 的区别:

ViewData 和 TempData 都可以传递弱类型数据,区别如下:

ViewData 只在当前 Action 中有效,生命周期和 View 相同;

TempData 的数据至多只能经过一次Controller传递,并且每个元素至多只能被访问一次,访问以后,自动被删除。

TempData 一般用于临时的缓存内容或抛出错误页面时传递错误信息,可以将TempData 在使用之前存储到相应的 ViewData 中以备循环使用。

文章出处:http://www.cnblogs.com/zhangqs008/archive/2012/08/11/2802207.html

时间: 2024-10-10 01:24:57

MVC ViewData和ViewBag的相关文章

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的区别

一.ViewData 1.ViewData派生自ViewDataDictionary,所以它具有字典的属性,例如:ContainsKey .Add .Remove 和 Clear : 2.字典键值是字符串类型,所以可以带空格,例如ViewData["a  b"]; 3.在视图中,只有string类型的值才能直接使用,其他的必须强制转换: 二.ViewBag 1.ViewBag派生自 DynamicViewData,所以它可以使用' '.'用法(ViewBag.A="张三&qu

Asp.net MVC中的ViewData与ViewBag

在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下: 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中查询数据时需要转换合适的类型 在V

浅谈 MVC中的ViewData、ViewBag和TempData

ViewBag和TempData的区别 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中查询数据时不需要类型转换 有一些类型转换代码 可

.NET MVC TempData、ViewData、ViewBag

说明: 原文作者贤新 原文地址:http://www.cnblogs.com/chenxinblogs/p/4852813.html ViewData和ViewBag主要用于将数据从控制器中传递到视图中去,ViewData本身就是一个字典.以KeyValue的形式存取值.ViewData的Value类型是Object,也就是可以将任意类型的值存储到ViewData中去,平时我们都在控制器中直接使用ViewData.本质上ViewData只是Controller父类ControllerBase中的

MVC中的ViewData、ViewBag和TempData

一.ViewBag和ViewData的定义 public dynamic ViewBag { get; } public ViewDataDictionary ViewData { get; set; } 二.ViewBag和ViewData的区别 viewdata viewbag 它是key/value字典集合 它是dynamic类型对象 从asp.net mvc1就有了 从asp.netmvc3才有 基于asp.netframework 3.5 基于asp.net framework4.0

Asp.net MVC中的ViewData与ViewBag(转)

在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下: 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中查询数据时需要转换合适的类型 在V