C#的Razor引擎语法规则主要包括以下几个方面:
-
代码块:
- 使用
@{}
来包裹C#代码块,这些代码将在服务器端执行:@{ int counter = 10; // 其他C#逻辑... }
- 使用
-
内联表达式:
- 在HTML中嵌入C#表达式以显示其值,前面加
@
:<p>计数:@counter</p>
- 在HTML中嵌入C#表达式以显示其值,前面加
-
变量声明:
- 可以使用
var
关键字声明并初始化变量,或者明确指定类型:
或@var message = "Hello, World!";
@int number = 42;
- 可以使用
-
条件判断:
- 使用标准C#
if
和else
结构:@if (counter > 0) { <p>数量大于零。</p> } else { <p>数量不大于或等于零。</p> }
- 使用标准C#
-
循环:
- 使用
for
或foreach
循环遍历集合:@foreach (var item in Model.Items) { <li>@item.Name</li> }
- 使用
-
HTML编码:
- 默认情况下,Razor会自动对内联表达式输出的结果进行HTML编码,防止XSS攻击:
如果要输出原始HTML内容而不进行编码,可以使用<p>User input: @Model.UserComment</p>
@Html.Raw()
方法:<p>User input as raw HTML: @Html.Raw(Model.HtmlContent)</p>
- 默认情况下,Razor会自动对内联表达式输出的结果进行HTML编码,防止XSS攻击:
-
助手方法:
- 可以使用ASP.NET MVC中的各种助手方法,这些方法通常以
@Html.
开头:@Html.ActionLink("链接文本", "ActionName", "ControllerName")
- 可以使用ASP.NET MVC中的各种助手方法,这些方法通常以
-
赋值与输出结合:
- 能够在一个表达式中同时进行赋值和输出,这在Razor中非常方便:
@(message = "新的消息内容") <!-- 这既设置了message的值,又输出了它的新值 -->
- 能够在一个表达式中同时进行赋值和输出,这在Razor中非常方便:
-
文件扩展名:
- 使用C#编写的Razor视图文件扩展名为
.cshtml
。
- 使用C#编写的Razor视图文件扩展名为
-
其他特性:
- 引用对象属性或方法同样直接在HTML中使用点记法:
<p>用户名:@Model.UserName</p>
- 引用对象属性或方法同样直接在HTML中使用点记法:
以上就是C#版本Razor引擎的主要语法规则,它旨在让开发人员在HTML文档中更加流畅地编写C#代码,创建动态网页内容。