Razor语法

简介:

  Razor作为一种全新的模板被MVC3和WebMatrix使用。尽管目前还存在一定性能上面的问题,但一直不喜欢WebForm标签式写法的人已经看到了福音。Razor在减少代码冗余、增强代码可读性和vs 智能感知方面,都有着突出的优势。本文将结合示例,总结出Razor的基本用法,以便于更多人了解Razor、使用Razor。

  1.开发工具

  Razor是MVC3中的一个视图模板引擎,所以,我们只需要在VS2010中安装一个MVC3的工具,就可以使用Razor了。

  如果你不想使用MVC3,还有另外一种选择,那便是WebMatrix + VS 2010;WebMatrix提供了Razor模板的网站,但它并不是一个优秀的IDE,没有像VS一样的智能感知和编辑时错误提醒功能。所以,在使用WebMatrix创建了Razor引擎的网站后,可以在VS2010中打开进行编辑。本文示例所使用的就是这种方式。

  2.Razor的文件类型

  Razor支持两种文件类型,分别是.cshtml 和.vbhtml,其中.cshtml 的服务器代码使用了c#的语法,.vbhtml 的服务器代码使用了vb.net的语法。

  由此也可以看出,Razor其实是一种服务器代码和HTML代码混写的代码模板,类似于没有后置代码的.aspx文件。

  3.Razor语法之@符号

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

    @{string productName = "台灯";}
<span>@productName</span>
<span>@DateTime.Now.ToString("yyyy-MM-hh")</span>

  当你在完成这段代码的时候,你会发现VS 2010为我们提供了代码着色和智能感知:

  运行这段代码,让我们看看浏览器的显示内容:

  有这个示例可以看出,@符号标记了一个HTML代码的输出,在其后的变量、方法返回值和表达式运算结果会进行输出。

  4.Razor语法之代码块定义

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

复制代码
@{
int num1 =10;
int num2 =5;

int sum = num1 + num2;
@sum;
}
复制代码

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

  另外,@(code)可以输出一个表达式的运算结果,上面的代码我们也可以写成这样:

复制代码
    @{
int num1 =10;
int num2 =5;

int sum = num1 + num2;
@(num1 +num2);
}
复制代码

  

  5.Razor语法之代码混写

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

复制代码
@{
int num1 =10;
int num2 =5;

int sum = num1 + num2;
string color ="Red";
<font color="@color">@sum</font>
}
复制代码

  值得称赞的是,即使我们这样混写,也不影响VS2010的智能感知功能。

  • 输出@符号:@@
  • 输出Email地址:Razor模板会自动识别出Email地址,所以不需要我们进行任何的转换。而在代码块中,只需要使用 @:Tom@gmail.com 即可。@:表示后面的内容为文本。
  • 输出HTML代码(包含标签):直接输出,string html = "<font color='red'>文本</font>"; @html
  • 输出HTML内容(不包含标签):有两种方法,第一种:IHtmlString html=new HtmlString("<font color='red'>文本</font>"); @html; 第二种:string html = "<font color='red'>文本</font>"; @Html.Raw(html);

  6.Razor语法之注释

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

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

    @*
这是一个注释
<b>这个是注释</b>
*@ 本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2011/07/24/2115254.html,如需转载请自行联系原作者
相关文章
|
6月前
|
前端开发 JavaScript 应用服务中间件
前端跨域问题解决Access to XMLHttpRequest at xxx from has been blocked by CORS policy
跨域问题是前端开发中常见且棘手的问题,但通过理解CORS的工作原理并应用合适的解决方案,如服务器设置CORS头、使用JSONP、代理服务器、Nginx配置和浏览器插件,可以有效地解决这些问题。选择合适的方法可以确保应用的安全性和稳定性,并提升用户体验。
3914 90
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习中的自注意力机制:理解与应用
在深度学习领域,自注意力机制(Self-Attention Mechanism)已成为推动模型性能飞跃的关键技术之一。本文将通过浅显易懂的方式,探讨自注意力机制的核心原理、实现方法及其在不同领域的应用实例,旨在为初学者和从业者提供一份简明扼要的指南。
|
移动开发 JavaScript 前端开发
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
这篇文章介绍了在UniApp H5项目中处理跨域问题的两种方法:通过修改manifest.json文件配置h5设置,或在项目根目录创建vue.config.js文件进行代理配置,并提供了具体的配置代码示例。
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
|
消息中间件 监控 负载均衡
深度剖析Kafka中Coordinator的奥秘
深度剖析Kafka中Coordinator的奥秘
618 1
|
消息中间件 存储 网络协议
Linux五种I/O模式 NIO BIO AIO IO多路复用 信号驱动 I/O
Linux五种I/O模式 NIO BIO AIO IO多路复用 信号驱动 I/O
472 0
state-machine持久化踩坑
state-machine持久化踩坑
163 0
|
小程序 UED
微信小程序分包
微信小程序分包
180 0
QGS
|
存储 Oracle 关系型数据库
CentOS 7 安装MariaDB10.3
记CentOS 7 安装MariaDB10.3
QGS
940 0
  CentOS 7 安装MariaDB10.3
|
存储 SQL 关系型数据库
柏睿数据+PolarDB湖仓一体联合解决方案
柏睿数据和PolarDB联手,根据产品的特殊点整合统一的解决方案,新方案融合数据湖和数据仓库成为一种新型的开放式数据平台架构,PolarDB做湖,RapidsDB做仓,将数据湖和数据仓库的优势充分结合,通过RapidsDB的federation能力构建在数据湖低成本的数据存储架构之上,又继承了数据仓库的数据处理、分析和管理功能。
柏睿数据+PolarDB湖仓一体联合解决方案