mvc中viewdata 和viewbag的区别
mvc中viewdata 和viewbag的区别
2013-06-18 15:43:45| 分类: MVC |举报 |字号 订阅
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中查询数据时不需要类型转换
有一些类型转换代码 可读性更好
用代码说明问题:
后台:
ViewData:
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();
ViewBag:
List<string> colors = new List<string>();
colors.Add("red");
colors.Add("green");
colors.Add("blue");
ViewBag.ListColors = colors;
ViewBag.DateNow = DateTime.Now;
ViewBag.Name = "Hajan";
ViewBag.Age = 25;
return View();
前台:
ViewData:
<p>My name is
<b>@ViewData["name"] </b>,<b>@ViewData["age"]
</b>years old.<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>
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>
本文出自 “战争之影” 博客,请务必保留此出处http://rmlifejun.blog.51cto.com/7683304/1621487
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。