asp.net MVC3 View视图

asp.net MVC3 增加了一个Razor视图引擎,@表达式 就是最新的也是最快的表达方式

在这里需要注意ViewBag 和ViewData的不同,其实从本质上说这两个属性都是可以进行数据传递,但是也有一些区别和联系。

首先,ViewBag是dynamic类型的,是动态类型的也就是说是在程序运行的时候动态确定的类型,而ViewData则是ViewDataDictionary类型的,这是区别1.

其次,ViewBag是通过ViewBag.Message=’Some Content’ ;  这样的方式来进行赋值存取的,而ViewData[“Message”]=”Some Content”;  是通过Key 和Value 来进行存取的这是区别2

 

最后,ViewBag 和ViewData 我说本质上没有什么不同,是说ViewBag 可以和ViewData 进行数据的交换获取。这句话很拗口,我举个例子来说,ViewBag.Message=’Some Content’;    ViewData[“Message”]=”Some Content 2”;   如果在前台View页面通过 ViewBag.Message  和ViewData[“Message”]  分别显示的话,其实显示的是同一个内容,都是Some Content2

这是什么原因呢?其实ViewBag 在内部实现上使用了ViewData,所以导致ViewBag 和ViewData 可以互相存取。、

还有另外一个例子表示,ViewBag.Message=”guo”;  ViewData[“Content”]=”zhi”;   如果在View中 可以通过ViewData[“Message”]  来获取 为 guo  ,也可以 用 ViewBag.Content  来获取ViewData中的数据  显示为zhi。

这就表示ViewData 和ViewBag 可以互相存取。不知道我说的够不够清楚呢!不信的话,你可以自己试试奥。

 

还有一个重要的问题就是 ,不可以直接浏览Views文件夹下的View文件,必须通过Controller来进行访问,这个不同于asp.net Web form 或者是php。至于什么原因,我相信只要是学习过MVC的朋友,都会懂得。

posted @ 2012-11-17 21:12  baidixing  阅读(979)  评论(0编辑  收藏  举报