ASP.NET Web Pages 使用 Razor 语法作为主要的服务器端代码嵌套语法。Razor 语法是一种简洁而强大的语法,允许将 C# 代码直接嵌套在 HTML 中,使得开发者能够方便地创建动态的 Web 页面。

以下是 Razor 语法的一些基本概念:

1. 变量和表达式:

使用 @ 符号在 Razor 代码块中声明变量或执行表达式。这些代码块会在服务器端执行。
@{
    var message = "Hello, Razor!";
}

<p>@message</p>

2. 控制结构:

使用 if、else、foreach 等控制结构进行条件判断和循环操作。
@if (condition)
{
    <p>Condition is true.</p>
}
else
{
    <p>Condition is false.</p>
}

<ul>
    @foreach (var item in collection)
    {
        <li>@item</li>
    }
</ul>

3. Razor 指令:

Razor 语法支持一些特殊的指令,如 @model、@inherits,用于指定模型或继承关系。
@model MyModel
<p>@Model.Property</p>

4. HTML 辅助方法:

Razor 提供了一系列 HTML 辅助方法,用于生成 HTML 标签,这些方法可以简化 HTML 的生成和避免 XSS 攻击。
@Html.Raw("<p>This is raw HTML.</p>")

<a href="@Url.Action("ActionName", "ControllerName")">Link</a>

5. 布局和部分视图:

使用 Layout 和 RenderSection 可以创建共享布局和部分视图,提高页面的可维护性。
<!-- _Layout.cshtml -->
<!DOCTYPE html>
<html>
<head>
    <title>@RenderSection("Title") - My Web Pages</title>
</head>
<body>
    <div id="content">
        @RenderBody()
    </div>
</body>
</html>

<!-- Page.cshtml -->
@{
    Layout = "_Layout.cshtml";
    ViewBag.Title = "Home Page";
}

@section Title {
    Home
}

<h1>Welcome to the Home Page</h1>

6. Razor 语法的注释:

使用 @* ... *@ 进行多行注释,使用 @* ... *@ 进行单行注释。
@* This is a multiline comment *@

<p>
    This is a paragraph.
    @* This is a single-line comment *@
</p>

7. Razor Pages:

在 ASP.NET Core 中,Razor Pages 是一种更现代的 Web 开发模型,它构建在 Razor 语法之上,提供更直观的方式来组织页面和处理请求。Razor Pages 使用 @page 指令指定页面路径,将 HTML 和 C# 代码组织在同一个文件中。
@page
@model MyModel

<h1>@Model.Title</h1>

这只是 Razor 语法的一些基本概念,Razor 语法非常强大且灵活,使得在页面中嵌套 C# 代码变得更加简单。


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