目录:

什么是Razor?

Razor是基于服务端代码转换成网页的标记语法。语法主要包括Razor标记、C#和HTML组成。包含Razor语法的主要文件是.cshtml。

渲染HTML

Razor的默认语言是HTML,从Razor渲染成一个HTML跟直接的一个HTML没什么区别,Razor包含如下代码:

<p>我是中国人</p>

服务器渲染后还是<p>我是中国人</p>,没啥区别。

Razor语法

Razor支持C#,并通过使用 @ 符号从HTML切换到C#,并运算C#表达式并将之渲染为HTML输出。Razor能通过指定的标记从HTML切换到C#,当 @ 符号后面紧跟一个Razor保留字,则将切换为Razor特定标记,不然的话切换到成普通的C#。

如果HTML中需要包含 @ 的话,需要用@@符号进行转义。

<p>@@Email</p>

渲染后:

<p>@Email</p>

这样就不会因为HTML特性和内容中包含邮件地址@符号,而勿将@符号处理为转义字符。

隐式 Razor 表达式

隐式Razor表达式起于"@"符号,后面紧跟C#代码,比如:

<h2>@DateTime.Now</h2>

注意:隐式表达式都不能包含空格。否则分析器会报如下错误:

在 "@" 字符后面遇到了空格或换行符。只有有效的标识符、关键字、注释、"(" 和 "{" 在代码块开头才有效,并且它们必须紧跟在 "@" 后面,中间没有空格。

表达式

显式表达式包含一对括号的 符号,比如在页面上渲染上周的时间:

<h2>@(DateTime.Now-TimeSpan.FromDays(7))</h2>

任何在 @() 内的内容都会被运算并渲染输出,同时也不能包含空格。比如如下代码:

<h2>@DateTime.Now-TimeSpan.FromDays(7)</h2>

渲染后:

2016/10/24 22:39:49-TimeSpan.FromDays(7)

同时也可以使用@{}显示表达式结果中把这点连接起来:

@{
    var swich = new Person("Swich", 27);
 }
 <h2>@(swich.Age)</h2>

如果写成@(swich.Age)这种非显示表达式,那么它会当做邮件地址来处理渲染成为<h2>@swich.Age</h2>。当为显式表达式时,将渲染为<h2>27</h2>。

Razor基础语法一的更多相关文章

  1. 从零开始学 Web 之 ES6(三)ES6基础语法一

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  2. PHP入门笔记--基础语法一

    一.基本语法 php标记 <?php ?> php代码结束标记 三种注释 // /**/ # 二.类型 四种标量类型:boolean, integer, float, string 三种复 ...

  3. Python基础语法一

    所有内容都在代码上,有相关代码注释 # #代表注释 # 区分大小写.以回车换行结束 # 多行编写可以使用反斜杠 \ # 缩进代表一个代码块 #数值 #int类型可以使用下划线分割 c=123_456_ ...

  4. Razor基础语法简介

    http://blog.csdn.net/pasic/article/details/7072340 Razor的出现,使页面看起更加简洁,Razor的页面后缀为:.cshtml Razor基础语法: ...

  5. Razor基础语法

    原文:Razor基础语法 一.介绍      Razor是ASP.NET MVC视图引擎的代号,支持.cshtml和.vbhtml两种模板文件,符号@标记服务端代码的开始,比以前asp.net的< ...

  6. [转]Linq语法一

    LINQ即语言集成查询,是.NET Framework 3.5中新增的功能.其功能类似于数据库中的SQL语句(实际上LINQ就是针对.NET Framework的SQL):提供标准的.易于学习的查询和 ...

  7. Python语法一

    前记,今天开始学习Python 参考 笨方法学习+Python(第三版) 因为有编程基础,所以入门不难,相比于以前学过的其它语言编程,Python当然也有它独特的语法格式. 1.安装Python 访问 ...

  8. MVC Razor基础

    @ 可以编写一条C#语句@{} 可以编写一组C#语句@: 将文字内容直接输出到页面上去@() 在一句中将一段C#代码包括起来,证明这一句完整的C#代码 Razor解决路径问题: Html.Action ...

  9. CSS基础语法和CSS经常用到的知识点总结

    1. [代码]css基础教程     CSS基础语法CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明.每条声明由一个属性和一个值组成.每个属性有一个值.属性和值被冒号分开.例如:下面这行代 ...

随机推荐

  1. C#如何在PDF文件添加图片印章

    文档中添加印章可以起一定的作用,比如,防止文件随意被使用,或者确保文档内容的安全性和权威性.C#添加图片印章其实也有很多实现方法,这里我使用的是免费的第三方软件Free Spire.PDF,向大家阐述 ...

  2. Angularjs参考框架地址

    1.Table(Grid)参考地址 https://github.com/samu/angular-table https://github.com/daniel-nagy/md-data-table ...

  3. FILE文件流的中fopen、fread、fseek、fclose的使用

    FILE文件流用于对文件的快速操作,主要的操作函数有fopen.fseek.fread.fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满 ...

  4. MyBatis源码分析(二)语句处理器

    StatementHandler 语句处理器,主要负责语句的创建.参数的设置.语句的执行.不负责结果集的处理. Statement prepare(Connection connection, Int ...

  5. Javascript 严格模式详解

    转自http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html 一.概述 除了正常运行模式,ECMAscript 5添加了第二 ...

  6. 【干货分享】流程DEMO-制度发文和干部任免

    流程名: 制度发文和干部任免  业务描述: 当员工在该出勤的工作日出勤但漏打卡时,于一周内填写补打卡申请.  流程相关文件: 流程包.xml  流程说明: 直接导入流程包文件,即可使用本流程  表单: ...

  7. H3 BPM初次安装常见错误详解1-4

    错误1: 首次安装完成无法访问,效果如下. 错误原因:没有配置IIS. 解决方法: 控制面板-程序-打开或关闭Windows功能,选择internet信息服务. 因为安装的时候没有没有iis,所以程序 ...

  8. 如何区别数据库删除语句drop与delete与truncate?

    1.delete:删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行) 删除某一行:delete from 数据表名称 where 列名称=值: 删除所有行:delete*fro ...

  9. NodeJS使用mysql

    1.环境准备 手动添加数据库依赖: 在package.json的dependencies中新增, "mysql" : "latest", { "nam ...

  10. linux下mono播放PCM音频

         测试环境: Ubuntu 14 MonoDevelop CodeBlocks 1.建立一个共享库(shared library) 这里用到了linux下的音频播放库,alsa-lib. al ...