ASP.NET Razor 是一种在 ASP.NET 中用于创建动态 Web 页面的标记语言。Razor 语法简洁而强大,旨在提高页面的可读性和编写效率。它支持在 HTML 中嵌入 C# 或 VB.NET 代码,使开发人员能够轻松地在页面中执行服务器端逻辑。

以下是 Razor 语法的一些关键特点和用法:

1. Razor 代码块:

在 Razor 页面中,可以使用 @ 符号引入 C# 或 VB.NET 代码块。
<!DOCTYPE html>
<html>
<head>
    <title>Razor Example</title>
</head>
<body>
    <h1>Hello, @User.Name!</h1>

    @if (User.IsAdmin)
    {
        <p>Welcome, Administrator!</p>
    }
    else
    {
        <p>Welcome, User!</p>
    }
</body>
</html>

2. Razor 表达式:

Razor 表达式用于在页面中输出动态内容。
<!DOCTYPE html>
<html>
<head>
    <title>Razor Expression</title>
</head>
<body>
    <p>The current date and time is: @DateTime.Now</p>
</body>
</html>

3. 循环和条件语句:

Razor 支持常见的循环和条件语句,如 foreach 和 if。
<ul>
    @foreach (var item in Model.Items)
    {
        <li>@item.Name</li>
    }
</ul>

@if (Model.IsLoggedIn)
{
    <p>Welcome back, @Model.UserName!</p>
}
else
{
    <p>Please log in.</p>
}

4. Razor 帮助器:

Razor 帮助器是一些内置的、用于执行特定任务的工具函数,如生成 HTML 标签、处理表单等。
<form method="post" action="/submit">
    @Html.TextBox("username")
    @Html.Password("password")
    <input type="submit" value="Login" />
</form>

5. Razor 注释:

Razor 支持在页面中添加注释。
<!-- This is an HTML comment -->

@* This is a Razor comment *@

6. Layout 页面:

Razor 允许通过使用 Layout 页面来创建共享的页面结构,以便更轻松地维护和更新整个网站。
<!-- _Layout.cshtml -->

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link rel="stylesheet" href="styles.css" />
</head>
<body>
    <div id="header">
        <h1>@ViewBag.Title</h1>
    </div>
    
    <div id="content">
        @RenderBody()
    </div>

    <div id="footer">
        &copy; 2023 My Website
    </div>
</body>
</html>

7. 部分视图:

Razor 允许将页面分解为部分视图,以便更好地组织和重用代码。
<!-- _Header.cshtml -->

<div id="header">
    <h1>@ViewBag.Title</h1>
</div>
<!-- 页面中使用部分视图 -->

@{
    Layout = "_Layout";
    ViewBag.Title = "Home";
}

@section header {
    @Html.Partial("_Header")
}

<div id="content">
    <p>Welcome to the home page!</p>
</div>

这些只是 Razor 语法的一些基本用法。Razor 提供了许多其他功能,如模型绑定、强类型视图等,使其成为 ASP.NET 中强大而灵活的视图引擎。你可以在[官方文档](https://learn.microsoft.com/en-us/aspnet/web-pages/overview/getting-started/introducing-razor-syntax)中查找更多详细信息。


转载请注明出处:http://www.pingtaimeng.com/article/detail/6548/ASP.NET