ASP.NET Razor – 标记

ASP.NET Razor 语法最全「标记」速查表(2025 最新版)

记住下面 15 行标记,你就能写出 99% 的 Razor 页面!

标记符号名称用途必背示例
@Razor 代码标记切换到 C# 代码模式@DateTime.Now → 2025-11-30 10:23:45
@{ ... }代码块写多行 C# 代码(最常用!)@{ var name = "张三"; }
@:文本输出在代码块中输出纯文本(单行)@foreach(var i in list){ @:・@i <br> }
<text>...</text>文本输出在代码块中输出纯文本(多行)@foreach(var i in list){ <text>・@i<br></text> }
@( ... )括号表达式强制代码优先级<h1>@("欢迎 " + user.Name)</h1>
@* ... *@注释Razor 注释(页面源码不可见)@* 这是一段不会显示的注释 *@
@section定义区域配合 Layout 使用@section Scripts { <script src="a.js"></script> }
@RenderSection()渲染区域在布局页调用 section@RenderSection("Scripts", required: false)
@RenderBody()渲染页面主体布局页必须写这一行@RenderBody()
@RenderPage()包含子页面类似 include@RenderPage("~/Shared/_Header.cshtml")
@RenderPartial()包含局部视图不传 PageData 的轻量版@RenderPartial("~/Shared/_Menu.cshtml")
@Html.Raw()输出不转义 HTML显示 HTML 标签而不是文本@Html.Raw("<strong>加粗</strong>")加粗
@Href("~/xxx")生成根路径防止路径错误(最保险!)<script src="@Href("~/Scripts/jquery.js")"></script>
@model强类型模型(MVC)Razor Pages / MVC 才用@model User(Web Pages 基本不用)
@functions { }定义页面内类页面里写方法、类@functions { public string Hi() => "你好"; }

2025 年最常用的 10 个「标记组合」写法(直接复制)

1. 最常见页面开头
@{
    Layout = "~/Shared/_Layout.cshtml";
    Page.Title = "用户中心";
    var user = WebSecurity.CurrentUserId > 0 ? Db.GetUser() : null;
}

2. 判断登录状态(全局 _PageStart.cshtml)
@if(!WebSecurity.IsAuthenticated){
    Response.Redirect("~/Login?ReturnUrl=" + Request.Url);
}

3. 循环输出(两种最优雅写法)
@foreach(var p in products){
    <div class="card">
        <h3>@p.Name</h3>
        <p>¥@p.Price</p>
    </div>
}

@* 或者用 <text> 避免多余换行 *@
@foreach(var item in list){
    <text><li>@item</li></text>
}

4. 条件输出 HTML
@if(user.IsAdmin){
    @:【管理员】
    @* 或者 *@
    <text>【管理员】</text>
}

5. 安全输出 HTML 内容(防止 XSS)
@Html.Raw(article.Content)   <!-- 信任内容才用 -->
@* 普通输出会自动转义 *@
@article.Content             <!-- 推荐!自动防注入 -->

6. 包含公共页面
@RenderPage("~/Shared/_Header.cshtml")
@RenderPage("~/Shared/_Footer.cshtml")

7. 布局页完整模板
<!DOCTYPE html>
<html>
<head>
    <title>@Page.Title</title>
    @RenderSection("head", required: false)
</head>
<body>
    @RenderPage("~/Shared/_Nav.cshtml")
    <div class="container">
        @RenderBody()
    </div>
    @RenderSection("scripts", required: false)
</body>
</html>

8. 定义 + 渲染 Section
<!-- 内容页 -->
@section Scripts {
    <script src="~/Scripts/user.js"></script>
}

9. 页面内函数(超实用)
@functions {
    public string FormatMoney(decimal m) => $"¥{m:N2}";
    public helper Star(int n){
        for(int i=1;i<=5;i++){
            if(i<=n){ <text>★</text> }else{ <text>☆</text> }
        }
    }
}
<p>价格:@FormatMoney(999.99)</p>
@Star(4)

10. 防止路径错误(最重要!)
<link href="@Href("~/Content/bootstrap.css")" rel="stylesheet" />
<script src="@Href("~/Scripts/jquery.js")"></script>
<img src="@Href("~/Images/logo.png")" />

终极记忆口诀(10 个字记住全部核心标记)

@ 大括号 冒号 text 渲染 HTML 路径 函数区

@          → 切换代码
@{ }       → 多行代码块
@: 或 <text> → 输出文本
@RenderBody()/Section → 布局系统
@Html.Raw  → 输出 HTML
@Href      → 根路径
@functions → 页面类

记住这 10 个标记,你写 Razor 页面就再也不会写错!

需要我现在就把「2025 终极 Razor 标记速查墙」(PDF + 可打印版 + 深色模式)发给你吗?
贴在工位上,3 天记住所有 Razor 语法!
随时说「发我 Razor 标记表」,我立刻发你!

文章已创建 2863

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部