ASP.NET的另一个视图引擎——Razor

 一、什么是Razor?

要是你知道什么是ASPX,那我就告诉你:Razor是和ASPX 一样的另一种视图引擎。说到视图就明白了很多吧。既然都为视图引擎,都是MS的东西,两个视图引擎,一前一后,肯定有区别。那么接下来让我们来认识一下Razor吧。

首先,Razor是作为一种后起的视图模板被ASP.NET MVC3使用。

这就暴露了Razor的一个重要信息:界面设计灵活,比aspx视图引擎更专注于WEB前端页面的设计。因为MVC就是基于WEB开发所诞生的一个设计模式,主旨之一就是将页面和业务逻辑解耦。如果说ASPX使用的很顺手的话,就没有必要在开发Razor了,所以这里的Razor是基于MVC设计的更适合WEB开发的视图引擎。

Razor在减少代码冗余、增强代码可读性和vs 智能感知方面,都有着突出的优势。

看看Razorde 特性吧:

· 紧凑、富有表现力和流畅:Razor尽量减少一个文件里需要敲入的字符数,给你畅快淋漓的编码体验。与大部分模板的语法不同,你不会因为需要在HTML中标注服务器端代码块而中断敲代码的快感。代码分析器足够聪明,能够从你的代码里推断出是否为服务器端代码。这使得其简洁、富有表现力的语法输入能够干净,快速,有趣。

· 上手快: Razor非常容易上手,你只需要了解很少的新东西就可以掌握它,使用你现有的编程语言和HTML知识就足够了。

· 不是一个新的编程语言:我们尽量避免为Razor创建一个新的命令式语言。相反,我们希望让程序员只使用现有的C#/VB(或其它)编程语言知识就能使用Razor,我们只不过在你选择的编程语言里,提供一个非常棒的基于模板生成HTML的标记语法。

· 可以使用任何文本编辑器编写:Razor不要求什么特别的工具,使用老古董的文本编辑器也可以高效编程(“记事本”就不错)。

· 很好的智能感应输入提示:虽然Razor不是专为某个工具或者代码编辑器设计的,但它在Visual Studio里还是有很赞的智能提示功能。我们将会升级Visual Studio 2010和Visual Web Developer 2010使得它具有完整的编辑器智能提示功能。

· 便于单元测试:新的视图引擎支持对视图执行单元测试,不需要控制器(controller)或者Web服务器,而且可以包含在任意的单元测试项目中—不需要单独的应用程序域(App-Domain)。

二、Razor语法的简单介绍

 1、Razor语法之@符号

  @字符是Razor中的一个重要符号,它被定义为Razor服务器代码块的开始符号。如果我们希望在网页中输出一个变量,或者当前日期,我们可以使用如下代码:

<span style="font-family:KaiTi_GB2312;font-size:18px;"> @{string productName = "台灯";}
    <span>@productName</span>
    <span>@DateTime.Now.ToString("yyyy-MM-hh")</span></span>

2、Razor语法之代码块定义

  你可以使用@{code}来定义一段代码块。

<span style="font-family:KaiTi_GB2312;font-size:18px;">@{
    int num1 =10;
    int num2 =5;

    int sum = num1 + num2;
    @sum;
}</span>

在代码块中,我们编写代码的方式和通常服务器端代码的方式是一样的。另外,如果需要输出,例如上面的在页面中输出结果,我们可以使用@sum完成输出。另外,@(code)可以输出一个表达式的运算结果,上面的代码我们也可以写成这样:

<span style="font-family:KaiTi_GB2312;font-size:18px;">@{
        int num1 =10;
        int num2 =5;

        int sum = num1 + num2;
        @(num1 +num2);
    }</span>

 3、Razor语法之代码混写

  Razor支持代码混写。在代码块中插入HTML、在HTML中插入Razor语句都是可以的

<span style="font-family:KaiTi_GB2312;font-size:18px;">@{
    int num1 =10;
    int num2 =5;

    int sum = num1 + num2;
    string color ="Red";
    <font color="@color">@sum</font>
}</span>

  4、Razor语法之注释

  这里所说的注释是指服务器端的注释,在Razor代码块中,可以使用C#的注释方式来进行注释,分别是//:(单行注释)和/**/(多行注释)。

  另外,Razor还提供了一种新的服务器段代码注释,可以即注释C#代码,同时可以注释HTML代码,@**@,这种注释方式不受代码块的限制,在Razor代码中的任何位置都可以

<span style="font-family:KaiTi_GB2312;font-size:18px;">@*
    这是一个注释
    <b>这个是注释</b>
    *@</span>

三、ASPX 和 Razor对比

既然已经学习了ASPX那么我们进行对比发信Razor的优势。 下面将结合示例看看:

首先是ASPX:

<span style="font-family:KaiTi_GB2312;font-size:18px;"><%
    int i = 100;
    string str = "mzwu.com";
%>
i=<% =i %>, str=<% =str %></span>

转换为:Razor

<span style="font-family:KaiTi_GB2312;font-size:18px;">@{
    int i = 100;
    string str = "mzwu.com";
}
[email protected],[email protected]</span>

可见,Razor用@代替了<%和%>,在输出单个变量值时,显得更简单。

<span style="font-family:KaiTi_GB2312;font-size:18px;"><%for (int counter = 0; counter < 10; counter++){%>
    <span>number = <% =counter %>;</span>
<%}%></span>

转换Razor

<span style="font-family:KaiTi_GB2312;font-size:18px;">@for (int counter = 0; counter < 10; counter++)
{
    <span>number = @counter;</span>
}</span>

从例子中可以看出,Razor比ASPX输的代码量少了,并且更智能,能自动分辨出C#代码和html。

到此只是简单的对比,发现Razor的简洁,当然还有很多的不同,等着大家去用。



时间: 2024-10-22 18:38:02

ASP.NET的另一个视图引擎——Razor的相关文章

(转)Asp.Net Mvc视图引擎Razor介绍

Asp.Net Mvc视图引擎Razor介绍 1.Razor介绍 程序园原创,转载请注明:http://www.kwstu.com/ArticleView/dabaomvc_201408240820545275 1)ASP.NET MVC3 带来了一种新的名为Razor 的视图引擎,提供了下列优点: Razor 的语法简单且清晰,只需要最小化的输入 Razor 容易学习,语法类似于 C# 和 VB Visual Studio 对于 Razor 提供了智能提示和语法着色 Razor 视图不需要允许

Asp.Net Mvc视图引擎Razor介绍

1.Razor介绍 1)ASP.NET MVC3 带来了一种新的名为Razor 的视图引擎,提供了下列优点: Razor 的语法简单且清晰,只需要最小化的输入 Razor 容易学习,语法类似于 C# 和 VB Visual Studio 对于 Razor 提供了智能提示和语法着色 Razor 视图不需要允许程序或者启动 Web 服务器就可以进行测试 2)Razor 现在提供了一些新的特征: @model 用来指定传到视图的 Model 类型 @* * 注释语法 对于整个站点可以一次性设定默认项目

转载:ASP.NET MVC扩展自定义视图引擎支持多模板&amp;动态换肤skins机制

ASP.NET mvc的razor视图引擎是一个非常好的.NET MVC框架内置的视图引擎.一般情况我们使用.NET MVC框架为我们提供的这个Razor视图引擎就足够了.但是有时我们想在我们的项目支持多模板&skins机制,比如我们可能会有多套的模板,也就是多个View风格,而我们只需要改一下配置文件就可以轻松的改变页面的风格和模板.实现这个功能有两种方式: 一.使用接口IViewEngine自己完成一个类似Razor视图引擎的功能. 二.继承类RazorViewEngine类,重写它的一些方

Asp.net MVC 移除视图引擎(WebFormViewEngine或者RazorViewEngine)

ASP.NET MVC 有两种视图引擎,分别asp.net语法的:WebFormViewEngine 与Razor视图的新语法:RazorViewEngine. 在MVC默认查找视图时,会按照指定的顺序查找,进行匹配视图,当我们的MVC程序未找到视图时,页面中会出现错误信息: 看到图片由可可知,它会先执行webfrom视图引擎查找,其次才是razor视图引擎,而现在ASP.NET MVC 项目通常只所有一种视图引擎就 已经足够了.如果是这样的话,另外一种视图引擎显得多余了,(里面多少也会给性能带

.NET MVC 两种视图引擎(Razor、Aspx)

ASPX 优点: 通过上面小小的对比,不难看出,与ASP.NET MVC紧密集成,对于以往ASP.NET开发人员有更好体验.其实它还有其他几优点: ●智能感应 ●能选择其它语言的 CodeDom provider (例如: C#, VB.NET, F#, Boo, Nemerle) ●立即编译或预编译的views 缺点: 当然也有缺点了: ●在Asp.net MVC中容易与经典的Asp.net模式混淆起来,并且Asp.net MVC已不再支持它们. (例如: ViewState PostBack

ASP.NET MVC 5 Web编程4 -- Razor视图引擎

Razor简介 Razor是ASP.NET新增的一个视图引擎,由微软全球最年轻的副总裁,有着"ASP.NET之父"称呼的Scott Guthrie主导的团队开发. 主导Razor开发的Scott Guthrie,毕业于美国杜克大学.现任微软云计算与企业级产品工程部执行副总裁. Razor对传统aspx页面的写法和页面渲染能力提出了反思,所以它在代码书写和HTML生成方面都进行了优化.Rzaor的设计目标遵循以下几点: a). 尽量减少代码 b). 上手快,只需要现有的编程语言和基本的H

Razor 视图引擎的一些属性和方法

参考网址:http://www.cnblogs.com/hangwei/p/4391058.html ASP.NET MVC 5 Web编程4 -- Razor视图引擎 2015-04-30 09:00 by hangwei, 1575 阅读, 1 评论, 收藏, 编辑 Razor简介 Razor是ASP.NET新增的一个视图引擎,由微软全球最年轻的副总裁,有着"ASP.NET之父"称呼的Scott Guthrie主导的团队开发. 主导Razor开发的Scott Guthrie,毕业于

介绍“Razor”— ASP.NET的一个新视图引擎

我的团队当前正在从事的工作之一就是为ASP.NET添加一个新的视图引擎. 一直以来,ASP.NET MVC都支持 “视图引擎”的概念—采用不同语法的模板的可插拔模块.当前ASP.NET MVC “默认”的视图引擎是ASP.NET Web窗体使用的.aspx/.ascx/.master文件模板.而当今其他一些流行的ASP.NET MVC视图引擎还包括 Spark和 NHaml. 我们正在打造一个新的视图引擎,它是一个在HTML生成方面进行优化,采用专注于代码的模版解决方案.它的开发代号是“Razo

ASP.NET 视图引擎

ASP.NET 中从MVC3.0 开始引入可Razor视图引擎.而遗留的ASPX引擎对维护与旧版的MVC程序是用的. 一.视图引擎是实现了IViewEngine接口,View Engine的作用是把对View的请求转换成ViewEngineResult对象,下面是此接口的定义: namespace System.Web.Mvc { public interface IViewEngine { ViewEngineResult FindPartialView(ControllerContext c