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的朋友,都会懂得。
我又回来了,回到了技术最前线,