ASP.NET Razor 是一种用于创建动态 Web 页面的视图引擎,它使用一种简洁而直观的语法,允许将 C# 代码嵌套在 HTML 中。以下是一些 ASP.NET Razor 的主要语法要点:

1. 代码块和表达式:
   - 使用 @{ ... } 来定义代码块,可以在其中包含任意数量的 C# 代码。
   - 使用 @ 符号来表示表达式,以输出 C# 代码的结果。
    @{
        // Code block
        var currentDate = DateTime.Now;

        // Expression
        <p>Current date: @currentDate</p>
    }

2. 变量和模型绑定:
   - 使用 @ 符号来引用变量和执行模型绑定。
   - 使用 @model 关键字指定视图的模型类型。
    @model MyApp.Models.User

    <p>Hello, @Model.UserName!</p>

3. 条件语句和循环:
   - 使用 if、else if、else 来执行条件判断。
   - 使用 foreach 循环迭代集合中的元素。
   - 使用 while 和 do-while 执行循环。
    @if (Model.IsAdmin)
    {
        <p>Welcome, Admin!</p>
    }
    else
    {
        <p>Welcome, User!</p>
    }

    <ul>
        @foreach (var item in Model.Items)
        {
            <li>@item</li>
        }
    </ul>

4. HTML 编码和原始输出:
   - 默认情况下,Razor 会对输出进行 HTML 编码,防止跨站脚本攻击(XSS)。
   - 使用 @Html.Raw() 来输出原始 HTML,但要谨慎使用,以避免安全风险。
    <!-- 默认 HTML 编码 -->
    <p>@Model.Description</p>

    <!-- 原始输出 -->
    <p>@Html.Raw(Model.RawHtml)</p>

5. 局部函数和帮助方法:
   - 在 Razor 页面中,可以定义局部函数来组织代码逻辑。
   - 使用 @functions { ... } 区块定义局部函数。
   - 使用 HTML 辅助方法(@Html)生成 HTML 元素和表单控件。
    @functions {
        // 局部函数
        void DisplayMessage(string message)
        {
            <p>@message</p>
        }
    }

    <!-- 使用局部函数 -->
    @DisplayMessage("Hello, World!")

6. 布局页和部分视图:
   - 使用 @{ Layout = "path/to/layout.cshtml"; } 来指定布局页。
   - 使用 @RenderSection("sectionName") 在布局页中渲染部分视图。
    @{
        // 布局页设置
        Layout = "~/Views/Shared/_Layout.cshtml";
    }

    <h1>Content for the page</h1>

    @section Footer {
        <p>Footer content</p>
    }

7. 注释:
   - 使用 @* ... *@ 来添加 Razor 注释。
   - 注释中的内容不会被发送到客户端。
    @* This is a Razor comment *@

这些是 Razor 的一些基本语法要点。Razor 的设计目标是在 HTML 中嵌套 C# 代码时保持清晰简洁,使开发人员能够更轻松地构建动态 Web 页面。


转载请注明出处:http://www.zyzy.cn/article/detail/14854/ASP.NET Razor 标记