ASP.NET MVC3中的ViewBag动态性
2011-09-11 10:00 随风浪迹天涯 阅读(6026) 评论(4) 编辑 收藏 举报这些天在学习MVC3 ,因为在和我的mentor在开发一个公司内部的项目,所以就开始学习MVC,前些天学习Razor引擎的时候,看到国外的一篇文章介绍ViewBag的,就拿过来,原文请点击这里:ViewBag dynamic in ASP.NET MVC3
在MVC 3中的有一个新的ViewBag 动态特性,它主要是为了从Controller到view进行传值用的,类似有所使用的ViewData[] 字典类。对于ViewBag是如此的强大,意味着你能动态的set/get 值,增加任何数量的的额外字段而不需要强类型的检测。
为了看这些的不同(和不用viewbag的时候),我们来看看一下的实例:
Eample:--using ViewBag
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(); } |
View (ASPX View Engine)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <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> |
Eample :-Using ViewBag
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 (ASPX View Engine)
<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是动态类型的,所以我没有必要把 ViewBag.ListColors 转换成如 List<string>这样子的形式。另一方面,这个ViewData["key"]是一个对方。
如果你在你的Controller中使用ViewData["ListColors"]=Colors,那么你可以在View试图中通过ViewBag.ListColors来检索它们。
出处:http://www.cnblogs.com/damonlan
Q Q:*********
E_mail:Damon_lan@163.com or Dongcai.lan@hp.com
本博文欢迎大家浏览和转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,在『参考』的文章中,我会表明参考的文章来源,尊重他人版权。若您发现我侵犯了您的版权,请及时与我联系。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步