本教程是系列教程中的第一个教程,介绍生成 ASP.NET Core Razor 页面 Web 应用的基础知识。
如果你是 ASP.NET Core 开发新手,且不确定哪种 ASP.NET Core Web UI 解决方案最适合自己的需要,请参阅选择 ASP.NET Core UI。
在本系列结束时,你将拥有一个管理电影数据库的应用。
在本教程中,你将了解:
- 创建 Razor 页面 Web 应用。
- 运行应用。
- 检查项目文件。
在本教程结束时,你将有一个工作的 Razor Pages Web 应用。在后续教程中,你可以在其基础上进行增强。

先决条件
Visual Studio
- 带有 ASP.NET 和 Web 开发工作负载的 Visual Studio 2022。
Visual Studio Code
Visual Studio Code 说明使用用于 ASP.NET Core 的 .NET CLI 开发功能,如项目创建。 可在(macOS、Linux 或 Windows)上或在任何代码编辑器中遵循这些说明。 如果使用 Visual Studio Code 以外的其他内容,则可能需要进行少量更改。
Visual Studio for Mac
创建 Razor 页面 Web 应用
Visual Studio
- 启动 Visual Studio 2022 并选择“创建新项目”。

- 在“创建新项目”对话框中,选择“ASP.NET Core Web 应用”,然后选择“下一步” 。

- 在“配置新项目”对话框中,为“项目名称”输入
RazorPagesMovie
。 请务必将项目命名为“RazorPagesMovie”(包括匹配大小写),这样在复制和粘贴代码时命名空间就会匹配。

- 选择“下一页”。
- 在“其他信息”对话框中,选择“.NET 6.0 (长期支持)”,然后选择“创建”。

创建以下初学者项目:

运行应用
Visual Studio
在“解决方案资源管理器”中选择“RazorPagesMovie”,然后按 Ctrl+F5 以在不使用调试程序的情况下运行 。
如果尚未将项目配置为使用 SSL,Visual Studio 显示以下对话:

如果信任 IIS Express SSL 证书,请选择“是”。
将显示以下对话框:

如果你同意信任开发证书,请选择“是”。
Visual Studio:
- 运行应用,启动 Kestrel 服务器。
- 在
https://localhost:5001
处启动默认浏览器,显示应用 UI。
Visual Studio Code
- 通过运行以下命令来信任 HTTPS 开发证书:
dotnet dev-certs https --trust
- 上述命令在 Linux 上无效。 有关信任证书的详细信息,请参阅 Linux 发行版的文档。如果证书以前不受信任,上述命令显示以下对话:

- 如果你同意信任开发证书,请选择“是”。
在 Visual Studio Code 中,按 Ctrl+F5 运行应用。 在“选择环境”提示符下,选择“.NET Core” 。
默认浏览器通过以下 URL 启动:https://localhost:5001
Visual Studio for Mac
选择“调试”>“开始调试”以启动应用。 Visual Studio for Mac 启动浏览器并导航到 https://localhost:<port>
,其中 <port>
是在创建项目时随机分配的端口号,并在 Properties/launchSettings.json
中设置。
检查项目文件
以下部分概述了你将在后续教程中使用的主要项目文件夹和文件。
Pages 文件夹
包含 Razor 页面和支持文件。 每个 Razor 页面都是一对文件:
- 一个
.cshtml
文件,其中包含使用 Razor 语法的 C# 代码的 HTML 标记。 - 一个
.cshtml.cs
文件,其中包含处理页面事件的 C# 代码。
支持文件的名称以下划线开头。 例如,_Layout.cshtml
文件可配置所有页面通用的 UI 元素。 此文件设置页面顶部的导航菜单和页面底部的版权声明。
wwwroot 文件夹
包含静态资产,如 HTML 文件、JavaScript 文件和 CSS 文件。
appsettings.json
包含配置数据,如连接字符串。
Program.cs
包含以下代码:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
此文件中的以下代码行会创建一个带有预配置默认值的 WebApplicationBuilder
,向依赖项注入 (DI) 容器添加 Razor Pages 支持,并生成应用:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
var app = builder.Build();
开发人员异常页默认启用,并提供有关异常的有用信息。 生产应用不得在开发模式中运行,原因是开发人员异常页可能会泄露敏感信息。
下面的代码会将异常终结点设置为 /Error
,并且当应用未在开发模式中运行时,启用 HTTP 严格传输安全协议 (HSTS):
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
例如,当应用在生产或测试模式中时,会运行前面的代码。
下列代码会启用各种中间件:
app.UseHttpsRedirection();
:将 HTTP 请求重定向到 HTTPS。app.UseStaticFiles();
:使能够提供 HTML、CSS、映像和 JavaScript 等静态文件。app.UseRouting();
:向中间件管道添加路由匹配。app.MapRazorPages();
:为 Razor Pages 配置终结点路由。app.UseAuthorization();
:授权用户访问安全资源。 此应用不使用授权,因此可删除此行。app.Run();
:运行应用。