ASP.NET Web Pages - 文件语法 详解

ASP.NET Web Pages 使用了一种称为 Razor 的语法,这是一种将基于服务器的代码嵌入到 HTML 页面中的简洁标记语法。Razor 语法使得开发 ASP.NET Web Pages 变得非常简单和直观。以下是对 ASP.NET Web Pages 文件语法的详细解析:

一、Razor 语法基础
代码块:
Razor 使用 @{} 来定义代码块。代码块中可以包含任意数量的 C# 语句。
例如:
razor
@{
var message = "Hello, World!";
}
内联表达式:
内联表达式以 @ 符号开头,后面紧跟变量或表达式。Razor 会将表达式的值输出到 HTML 中。
例如:
razor

The current date and time is @DateTime.Now

HTML 标记: Razor 文件本质上是 HTML 文件,可以在其中嵌入服务器代码。HTML 标记和 Razor 代码可以混合使用。

二、Razor 语法的高级特性
控制结构:
Razor 支持 C# 的控制结构,如 if、for、foreach、switch 等。
例如:
razor
@if (DateTime.Now.Hour < 12) {

Good morning!


} else {

Good afternoon or evening!


}

@for (int i = 1; i <= 5; i++) {

This is line @i


}

@foreach (var item in Request.ServerVariables) {

@item


}
布局和分部视图:
布局页:用于定义网页的通用结构,如头部、导航栏和页脚。内容页可以通过 Layout 属性指定使用哪个布局页。
例如,在内容页中:
razor
@{
Layout = "~/Shared/_Layout.cshtml";
}
在布局页 _Layout.cshtml 中:

razor

@Page.Title

My Website

@RenderBody()

© 2025 My Company

分部视图:用于将可重用的内容块提取到单独的文件中,然后在需要的地方通过 @RenderPage 或 @Html.Partial 方法渲染。 例如,在内容页中: razor
@RenderPage("~/Shared/_Header.cshtml")

Welcome to My Page

This is the main content of the page.

@RenderPage("~/Shared/_Footer.cshtml")
Web Helpers: ASP.NET Web Pages 提供了一组内置的 Web Helpers,用于简化常见的任务,如发送电子邮件、显示图表、处理文件上传等。 例如,使用 WebMail Helper 发送电子邮件: razor @{ WebMail.SmtpServer = "smtp.example.com"; WebMail.UserName = "your-email@example.com"; WebMail.Password = "your-password"; WebMail.From = "your-email@example.com"; WebMail.Send("recipient@example.com", "Subject", "Body"); }

三、文件命名和路径
文件扩展名:
Razor 文件的扩展名通常为 .cshtml,表示这是一个包含 C# 代码的 HTML 文件。
文件路径:
在 Razor 文件中,可以使用相对路径或虚拟路径来引用其他文件。
相对路径是相对于当前文件的路径,而虚拟路径是相对于网站根目录的路径。
例如:
razor
@RenderPage("~/Shared/_Header.cshtml")
这里使用了虚拟路径 ~/Shared/_Header.cshtml 来引用共享文件夹中的头部文件。

隐藏文件:
在 ASP.NET Web Pages 中,以下划线 _ 开头的文件(如 _Layout.cshtml、_Header.cshtml)通常不会被直接访问,因为它们通常用作布局页或分部视图。

四、Razor 语法示例
以下是一个完整的 Razor 文件示例,展示了如何结合 HTML 和 Razor 代码来创建一个简单的网页:

razor
@{
Layout = "~/Shared/_Layout.cshtml";
Page.Title = "Home Page";
var greeting = "Welcome to My Website!";
}

@greeting

The current date and time is @DateTime.Now

    @foreach (var item in Request.ServerVariables) {
  • @item
  • }

五、总结
ASP.NET Web Pages 的 Razor 语法使得在 HTML 中嵌入服务器代码变得非常简单和直观。通过掌握 Razor 语法的基础和高级特性,开发者可以轻松地创建功能丰富、结构清晰的网页。同时,了解文件命名和路径的规则也有助于更好地组织和管理项目文件。

posted @   白色墨水  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示