版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lilin8905/article/details/44568763
ViewData用于 控制器(Controller)向视图(View)中传值
在Controller中使用ViewData:
HomeController.CS
Index.aspx:
ViewData中的数据只能传递到当前这个Action所要去加载的视图页面中去,而不能跨Action传输。
TempData是用于解决在不同的的Action方法之间跳转的时候的数据传递。这里不同的Action可以是同一个Controller下的不同的Action之间,也可以是不同Controller的Action之间。
在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中查询数据时需要转换合适的类型 | 在ViewPage中查询数据时不需要类型转换 |
有一些类型转换代码 | 可读性更好 |
用Razor实现流畅编程
ASP.NET MVC 3配有一个新的名为“Razor”的视图引擎选项(除了已有的.aspx视图引擎)。
Razor尽量减少编写一个视图模板需要敲入的字符数,实现快速流畅的编程工作流。与大部分模板的语法不同,你不必在HTML中为了明确地标记出服务模块的开始和结束而中断编程。Razor解析器足够聪明,能从你的代码中推断出来。这使其简洁,富有表现力的语法输入干净,快速,有趣。
例如下面的代码片段迭代一列商品(product):
当运行时它产生的结果如下: