ASP.NET MVC Razor视图引擎攻略
2012-05-08 11:13
459 查看
--引子
看下面一段MVC 2.0的代码。
我们站在一个读者的立场上来看,”<% %>“这种标记C#代码的方法是十分蛋疼的。
如果写这段代码的人没有良好的缩进和对齐习惯的话,一段逻辑较为复杂的代码就会堆砌着杂乱无章的"<%“和"%>"--匹配它们就是一件头疼的事情,会让读者望而生畏。
即使是写代码的本人,闭合也是一件麻烦的事情,并且VS对”<% %>“的自动缩进和对齐支持不很友好,看惯了整齐的代码,面对自己写出的凌乱的东西会很不爽。
随着MVC 3.0的发布,新的Razor视图引擎解决了这个问题。
Razor的意思的就是 剃刀,可见它灰常犀利。引言中的代码,我们用Razor的语法来写的话:
Razor使用了"@"来标记一段C#代码,并帮我们进行了内部的闭合,是不是感觉清爽多了?
Razor在减少代码冗余、增强代码可读性和vs 智能感知方面,都有着很大的优势。下面我们来具体的介绍如何在ASP.NET MVC 3.0中使用Razor。
---------------------------------------------引言End----------------------------------------------
一,创建基于Razor的Web程序
首先你的开发环境必须安装.NET Framework4.0,然后在VS中新建项目时选择ASP.NET MVC 3 应用程序,在选项页面中选择视图引擎为Razor,如图1:
View Code
我们来改一下Index视图演示一下Razor的简单应用。
在一般视图中,首先声明视图模型,即Action返回的ViewResult对象的类型<也可以不声明,如果有返回对象建议声明>。
这里的视图模型是一个List<Product>集合,因为Product位于using JohnConnor.Data命名空间,所以先添加了引用。
在母版中ViewBag.Title用于绑定Title标签,在一般视图中就可以进行赋值来绑定页面的Title 。
如果你不想使用母版,就在代码块中添加"Layout = null;"。
最后是就是一些数据绑定,或者是逻辑的处理。
Razor的基本内容大概就讲这些了,当然它还有很丰富的底蕴,需要在实际的运用过程中去学习,一篇短文是无法涵盖所有信息的。
最后提一点,Razor暂时没有设计视图,这是比较悲摧的一点。相信之后会有的。如果对Razor的使用有任何问题,可以在此提出,能力范围内的问题我都可以提供帮助。
希望大家多多支持。
看下面一段MVC 2.0的代码。
<%if (Model != null) {%> <p><%=Model%></p> <%}%> <%else {%> //Do something <%}%>
我们站在一个读者的立场上来看,”<% %>“这种标记C#代码的方法是十分蛋疼的。
如果写这段代码的人没有良好的缩进和对齐习惯的话,一段逻辑较为复杂的代码就会堆砌着杂乱无章的"<%“和"%>"--匹配它们就是一件头疼的事情,会让读者望而生畏。
即使是写代码的本人,闭合也是一件麻烦的事情,并且VS对”<% %>“的自动缩进和对齐支持不很友好,看惯了整齐的代码,面对自己写出的凌乱的东西会很不爽。
随着MVC 3.0的发布,新的Razor视图引擎解决了这个问题。
Razor的意思的就是 剃刀,可见它灰常犀利。引言中的代码,我们用Razor的语法来写的话:
@if (Model != null) { <p>@Model</p> } else { //Do something }
Razor使用了"@"来标记一段C#代码,并帮我们进行了内部的闭合,是不是感觉清爽多了?
Razor在减少代码冗余、增强代码可读性和vs 智能感知方面,都有着很大的优势。下面我们来具体的介绍如何在ASP.NET MVC 3.0中使用Razor。
---------------------------------------------引言End----------------------------------------------
一,创建基于Razor的Web程序
首先你的开发环境必须安装.NET Framework4.0,然后在VS中新建项目时选择ASP.NET MVC 3 应用程序,在选项页面中选择视图引擎为Razor,如图1:
View Code
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using JohnConnor.Data; namespace JohnConnor.Web.Controllers { public class HomeController : Controller { public ActionResult Index() { var products = new List<Product>() { new Product{ Name="钢笔", Price=11.55M}, new Product{ Name="铅笔", Price=2.17M}, new Product{ Name="圆珠笔", Price=5.98M}, }; return View(products); } } }
我们来改一下Index视图演示一下Razor的简单应用。
@using JohnConnor.Data; @model List<Product> @{ ViewBag.Title = "主页";//母版中ViewBag.Title用于绑定Title标签,这里进行赋值。 } <h2>Razor</h2> @foreach (var product in Model) { //遍历所有的产品 <input type="button" name="@product.Name" value="@product.Name" onclick="alert(@product.Price)" /> }
在一般视图中,首先声明视图模型,即Action返回的ViewResult对象的类型<也可以不声明,如果有返回对象建议声明>。
这里的视图模型是一个List<Product>集合,因为Product位于using JohnConnor.Data命名空间,所以先添加了引用。
在母版中ViewBag.Title用于绑定Title标签,在一般视图中就可以进行赋值来绑定页面的Title 。
如果你不想使用母版,就在代码块中添加"Layout = null;"。
最后是就是一些数据绑定,或者是逻辑的处理。
Razor的基本内容大概就讲这些了,当然它还有很丰富的底蕴,需要在实际的运用过程中去学习,一篇短文是无法涵盖所有信息的。
最后提一点,Razor暂时没有设计视图,这是比较悲摧的一点。相信之后会有的。如果对Razor的使用有任何问题,可以在此提出,能力范围内的问题我都可以提供帮助。
希望大家多多支持。
相关文章推荐
- ASP.NET MVC Razor视图引擎攻略
- ASP.NET MVC Razor视图引擎攻略
- ASP.NET MVC Razor视图引擎攻略
- ASP.NET MVC Razor视图引擎攻略
- 逃脱Asp.Net MVC框架/枷锁,使用Razor视图引擎
- ASP.NET MVC 3 Razor 视图引擎 基本语法
- ASP.NET MVC (六-1) Razor视图引擎
- ASP.NET MVC 3 Razor 视图引擎 基本语法
- ASP.NET MVC学习---(七)Razor视图引擎语法
- ASP.NET MVC学习---(七)Razor视图引擎语法
- ASP.NET MVC Razor 视图引擎
- ASP.NET MVC 3 Razor 视图引擎 基本语法
- Asp.net MVC 3 之 Razor 视图引擎
- ASP.NET MVC 3 Razor 视图引擎 基本语法
- Asp.Net MVC Razor视图引擎与My97DatePicker插件的结合
- ASP.NET MVC 3 Razor 视图引擎 基本语法
- (转)Asp.Net Mvc视图引擎Razor介绍
- ASP.NET MVC 3 Razor 视图引擎 布局
- [转]ASP.Net MVC开发基础学习笔记(3):Razor视图引擎、控制器与路由机制学习
- ASP.NET MVC 3.0:Razor视图引擎如何展示多实体