Razor 是一个用于将基于服务器的代码嵌入到网页中的标记语法。 Razor语法由 Razor 标记、c # 和 HTML 组成。
Razor 支持 c #,并使用 @ 符号从 HTML 转换为 c #。 Razor 计算 c # 表达式并在 HTML 输出中呈现。
隐式 Razor 表达式以开头, @ 后跟 c # 代码:
<p>@DateTime.Now</p>>
隐式表达式不能包含空格,但 C# await 关键字除外。
<p>@await DoSomething("hello", "world")</p>
隐式表达式 不能 包含 C# 泛型,因为括号 (<>) 内的字符会被解释为 HTML 标记。
<p>@GenericMethod<int>()</p>
上述代码生成与以下错误之一类似的编译器错误:
“int” 元素未结束。 所有元素都必须自结束或具有匹配的结束标记。
无法将方法组 “GenericMethod” 转换为非委托类型 “object”。 是否希望调用此方法?`
泛型方法调用必须在显式 Razor 表达式或 Razor 代码块中进行包装。
显式 Razor 表达式由 @ 带对称括号的符号组成。
@(表达式内容)
计算结果为字符串的 C# 表达式采用 HTML 编码。 计算结果为 IHtmlContent 的 C# 表达式直接通过 IHtmlContent.WriteTo 呈现。 计算结果不为 IHtmlContent 的 C# 表达式通过 ToString 转换为字符串,并在呈现前进行编码。
Razor 代码块以开头 @ ,并由括起来 {} 。 代码块内的 C# 代码不会呈现,这点与表达式不同。 一个视图中的代码块和表达式共享相同的作用域并按顺序进行定义
@{代码块}