You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Razor Pages设置垂直切片架构并自定义页面目录?

修改Razor Pages默认页面查找目录结构

默认情况下,ASP.NET Core的Razor Pages运行时会在根目录的Pages文件夹中查找页面文件,默认目录结构如下:

Pages
  --Orders
    ----index.cshtml
    ----add.cshtml
  --Products
    ----index.cshtml
    ----add.cshtml

现在需要调整为以下目录结构,将每个模块的页面文件放在各自模块目录下的Pages子文件夹中:

Orders
  --Pages
    ----index.cshtml
    ----add.cshtml
Products
  --Pages
    ----index.cshtml
    ----add.cshtml

实现方法

1. 配置自定义页面查找路径

在项目的Program.cs(.NET 6+)或Startup.cs(.NET 5及更早版本)中,修改Razor Pages的服务配置,添加自定义的页面根路径和路由规则:

以Program.cs为例:

var builder = WebApplication.CreateBuilder(args);

// 配置Razor Pages服务,添加自定义页面查找规则
builder.Services.AddRazorPages(options =>
{
    // 将根目录设为项目根路径,而非默认的/Pages
    options.RootDirectory = "/";

    // 为Orders模块配置路由映射:将/Orders/Pages下的页面路由调整为/Orders/xxx
    options.Conventions.AddPageRouteModelConvention("/Orders/Pages/{page}", model =>
    {
        model.RouteValues["page"] = $"Orders/{model.RouteValues["page"]}";
    });

    // 为Products模块配置路由映射:将/Products/Pages下的页面路由调整为/Products/xxx
    options.Conventions.AddPageRouteModelConvention("/Products/Pages/{page}", model =>
    {
        model.RouteValues["page"] = $"Products/{model.RouteValues["page"]}";
    });
});

var app = builder.Build();

// 常规中间件配置
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();

// 映射Razor Pages端点
app.MapRazorPages();

app.Run();

2. 页面路由的补充设置(可选)

如果不想通过全局配置统一处理路由,也可以在每个页面的.cshtml文件顶部通过@page指令直接指定路由:

比如Orders/Pages/index.cshtml:

@page "/Orders"
@model Orders.Pages.IndexModel

<h1>订单列表</h1>

Orders/Pages/add.cshtml:

@page "/Orders/Add"
@model Orders.Pages.AddModel

<h1>添加订单</h1>

这种方式更灵活,适合需要自定义特殊路由的页面。

3. 验证配置效果

启动项目后,访问/Orders应能正常加载Orders/Pages/index.cshtml,访问/Products/Add应能加载Products/Pages/add.cshtml,说明配置已生效。

内容的提问来源于stack exchange,提问作者acmoune

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:37:38