目前我们使用asp.net开发的过程中,接触了三种开发模式:一般处理程序(ashx),webform(aspx),mvc。具体关于asp.net的介绍,请看博客:[总览]Asp.net。
在学习mvc时,我对这两种搜索引擎机制:razor和winform有了新的理解。在mvc中添加视图时,不知道大家有没有注意到这两种视图的区别:
一、两种引擎:
视图1:使用Razor;
得到比较赶紧清晰的页面:
视图2:使用Winform引擎
页面的内容就比较丰富了:
razor文件的扩展名是.cshtml;winform文件的扩展名是.aspx。我们之前接触了很多关于winform引擎的知识,这次给大家简单介绍一下razor的内容。
二、razor中的@符号
它被定义为Razor服务器代码块的开始符号。
1、如果我们希望在网页中输出一个变量,或者当前日期,我们可以使用如下代码:
<h2>Details</h2>
<h3>这是子页面的内容</h3>
@{string productName = "圣诞节快乐";}
<span>@productName</span>
<span>@DateTime.Now.ToString("yyyy-MM-hh")</span>
2、也可以在@{}下直接进行运算
@for (int i = 0; i < 10; i++) { <span>@i ==<%: i%></span> i++; int a = i + 1; }
3、输出
3.1输出@符号:@@
3.2输出Email地址:Razor模板会自动识别出Email地址,所以不需要我们进行任何的转换。而在代码 块中,只需要使用@:Tom@gmail.com 即可。@:表示后面的内容为文本。
3.3输出HTML代码(包含标签):直接输出,stringhtml = "<font color='red'>文本</font>"; @html
3.4输出HTML内容(不包含标签):有两种方法,第一种:IHtmlStringhtml=new HtmlString("<font color='red'>文本</font>");@html; 第二种:string html = "<font color='red'>文本</font>";@Html.Raw(html);
三、razor注释
这里所说的注释是指服务器端的注释,在Razor代码块中,可以使用C#的注释方式来进行注释,分别是//:(单行注释)和/**/(多行注释)。
另外,Razor还提供了一种新的服务器段代码注释,可以即注释C#代码,同时可以注释HTML代码,@**@,这种注释方式不受代码块的限制,在Razor代码中的任何位置都可以。
@* 这是一个注释 <b>这个是注释</b> *@
四、优点(了解):
1、紧凑、富有表现力和流畅:
Razor尽量减少一个文件里需要敲入的字符数,给你畅快淋漓的编码体验。与大部分模板的语法不同,你不会因为需要在HTML中标注服务器端代码块而中断敲代码的快感。代码分析器足够聪明,能够从你的代码里推断出是否为服务器端代码。这使得其简洁、富有表现力的语法输入能够干净,快速,有趣。
2、上手快:
Razor非常容易上手,你只需要了解很少的新东西就可以掌握它,使用你现有的编程语言和HTML知识就足够了。
3、不是一个新的编程语言:
我们尽量避免为Razor创建一个新的命令式语言。相反,我们希望让程序员只使用现有的C#/VB(或其它)编程语言知识就能使用Razor,我们只不过在你选择的编程语言里,提供一个非常棒的基于模板生成HTML的标记语法。
4、 可以使用任何文本编辑器编写:
Razor不要求什么特别的工具,使用老古董的文本编辑器也可以高效编程(“记事本”就不错)。
5、很好的智能感应输入提示:
虽然Razor不是专为某个工具或者代码编辑器设计的,但它在Visual Studio里还是有很赞的智能提示功能。我们将会升级VisualStudio 2010和Visual Web Developer 2010使得它具有完整的编辑器智能提示功能。
6、便于单元测试:
新的视图引擎支持对视图执行单元测试,不需要控制器(controller)或者Web服务器,而且可以包含在任意的单元测试项目中—不需要单独的应用程序域(App-Domain)。
7、弹性的选择空间
ASP.NET最赞的地方之一就是大部分组件都是可插拔的。如果你发现有一个组件不好用,随时都可以换成另外一个。
总结:
razor视图引擎是一种页面更简洁,操作更简单,服务器代码和HTML代码混写的代码模板。