目录:html
Razor是基于服务端代码转换成网页的标记语法。语法主要包括Razor标记、C#和HTML组成。包含Razor语法的主要文件是.cshtml。服务器
Razor的默认语言是HTML,从Razor渲染成一个HTML跟直接的一个HTML没什么区别,Razor包含以下代码:spa
<p>我是中国人</p>
服务器渲染后仍是<p>我是中国人</p>,没啥区别。code
Razor支持C#,并经过使用 @ 符号从HTML切换到C#,并运算C#表达式并将之渲染为HTML输出。Razor能经过指定的标记从HTML切换到C#,当 @ 符号后面紧跟一个Razor保留字,则将切换为Razor特定标记,否则的话切换到成普通的C#。htm
若是HTML中须要包含 @ 的话,须要用@@符号进行转义。blog
<p>@@Email</p>
渲染后:
get
<p>@Email</p>
这样就不会由于HTML特性和内容中包含邮件地址@符号,而勿将@符号处理为转义字符。class
隐式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>。