走进ASP.NET MVC 3.0中的Razor模板引擎

作者:控件中国网   出处:控件中国网   2015-07-22 11:19:49   阅读:3

今天们要讨论的是ASP.NET MVC 3.0中的Razor模板引擎,与大家分享关于Razor的一些感受。


 

AD: eDocEngine VCL - PDF控件 —正版、购买、下载、价格、销售、代理、授权、技术支持尽在控件中国网

 

 

随着MVC3.0RTM版本的发布,最近将公司的项目从MVC2.0升级到MVC3.0。同时打算在MVC3中全面使用Razor模板引擎。现将Razor学习拿出来和大家分享,如果存在不足的地方欢迎您指出。


 

其实在使用 %= % 在html中调用C#代码时,内心总在埋怨。这个写法非常麻烦。麻烦在哪呢?其实就是闭合。比如:


 

Asp.net: script src= %=Url.Content( ~/Scripts/jquery-1.4.4.min.js )%


 

Razor:  script src= @Url.Content( ~/Scripts/jquery-1.4.4.min.js )  


 

非常明显,Razor在内部帮们做了闭合 % 。其实就是这个小小的闭合让们可以在html内更加 流畅 的调用服务端代码。故Razor给开发带来了一定的便捷!下面介绍Razor的基本用法。


 

一、模板页


 

Razor出现后们就可以选择不再使用asp.net master 模板页。取而代之的是cshtml razor的模板文件。用法个人认为还是和master模板页类似。但在mater模板页的原有功能上有了进一步扩展,更方便开发。比如只要在View文件夹内加入_ViewStart.cshtml文件,们就无需在每一个具体的View页面引入模板页。减少View页面内的重复代码。具体的可以建立一个MVC3 Application 选择razor模板,VS会自动建立上述机制。这里值得提出的是@RenderSection方法。可以让们在模板页预设一个区域,未来给继承该模板页的View使用。具体请看以下操作:


 

在MVC3.0 shared文件夹下_Layout.cshtml这个模板文件内加入以下代码:


 

 !DOCTYPE html     html     head     title @ViewBag.Title /title     link href= @Url.Content( ~/Content/Site.css )  rel= stylesheet  type= text/css  /     script src= @Url.Content( ~/Scripts/jquery-1.4.4.min.js )  type= text/javascript /script    @RenderSection( Head , required: true)    /head     body     div  >

以上代码第7行,预留出一个Head的section。 熟悉模板页的人,应该明白该处是预留是给未来具体的View页面自定义特定js/css使用的。这个View们就用默认的Home底下的Index来举例。打开index.cshtml 写入以下代码


@{   ViewBag.Title =  Home Page ;   }   h2 @ViewBag.Message /h2    @section Head{    script type= text/javascript    $(function () {   alert( hello jquery    });    /script    } 

该View已经集成了模板页,这里只是填充模板页内的Head section这时就可以加入们的针对每个view页面的js或者CSS了。至此达到共性外的个性。


二、Razor语法:


文章开头就已经提到了,个人认为Razor语法的便捷在于razor自动帮助们闭合C#或VB.NET在html的语法。请看以下代码:



已经给出注释了,仔细阅读并不难理解。您应该也能体会到如果将razor换成asp.net的 %= % 或者 %: % 写法,其实是很 痛苦 的。至于razor的其他用法官方网站已经写的很全面了,比如razor的已经为们 HTML Encod防止XSS攻击、html中字符串中出现 @ .com这样的文本,Razor是可以自动识别成Email格式而不是Razor的关键字。


三、 Razor 语法智能提示:


该智能提示与VS内的一样,只需Ctrol + J 即可调出。具体的请看下图



您是否和一样也打算在Web开发中全面使用Razor呢?

eDocEngine VCL - PDF控件 —正版、购买、下载、价格、销售、代理、授权、技术支持尽在控件中国网
Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat