📌 Razor 是什么?

Razor 是 ASP.NET Web Pages 使用的服务器端模板语言,允许你在 HTML 中直接嵌入 C# 代码块。Razor 文件的扩展名是 .cshtml

  • Razor 表达式以 @ 开头
  • 可以在 HTML 中插入变量、执行逻辑
  • 在服务器执行,结果被发送到客户端

🧩 基本 Razor 表达式

@DateTime.Now

输出当前日期和时间,例如:

2025/5/7 10:23:00


✏️ 在 HTML 中插入变量

@{
    var name = "Alice";
}
<p>Hello, @name!</p>

输出:

<p>Hello, Alice!</p>


⚙️ 条件语句

@{
    var hour = DateTime.Now.Hour;
}
@if (hour < 12) {
    <p>Good morning!</p>
} else {
    <p>Good afternoon!</p>
}


🔁 循环语句

@{
    var fruits = new[] { "Apple", "Banana", "Cherry" };
}
<ul>
@foreach (var fruit in fruits) {
    <li>@fruit</li>
}
</ul>

输出:

<ul>
  <li>Apple</li>
  <li>Banana</li>
  <li>Cherry</li>
</ul>


📦 Razor 代码块(@{ }

  • 放置多行 C# 代码
  • 定义变量、逻辑判断、函数等都在此块内完成
@{
    var title = "Welcome";
    var year = DateTime.Now.Year;
}
<h1>@title to our site!</h1>
<footer>&copy; @year</footer>


💡 使用 Layout 页面共享代码(简要示例)

_Layout.cshtml

<!DOCTYPE html>
<html>
<head>
    <title>@Page.Title</title>
</head>
<body>
    <div class="main">
        @RenderBody()
    </div>
</body>
</html>

home.cshtml

@{
    Layout = "_Layout.cshtml";
    Page.Title = "Home";
}
<h2>This is the homepage</h2>


🌐 出站链接推荐

📚 参考资料

  1. Microsoft Learn: Introducing Razor Syntax
  2. Stack Overflow: razor-syntax
  3. WebMatrix Razor 教程(归档)

是否继续下一章:数据访问与 WebGrid 的使用