Razor基础语法一

目录:html

什么是Razor?

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

渲染HTML

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

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

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

Razor语法

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 表达式

隐式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>。

相关文章
相关标签/搜索