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

ASP.NET Core 8如何为每个子文件夹设置默认页面?

实现ASP.NET Core Razor Pages子文件夹默认页面

问题原因

你之前用的UseDefaultFiles是针对静态文件的默认页解析逻辑,和Razor Pages的路由机制不兼容,所以无法生效。Razor Pages需要通过自身的路由规则来配置子文件夹的默认页面,以下是几种可行方案:


方案一:直接给页面指定路由(简单直观)

在每个子文件夹的Default.cshtml页面顶部,添加@page指令指定对应路由:

  • Pages\Products\Default.cshtml:
@page "/Products"
@model 你的项目命名空间.Pages.Products.DefaultModel
  • Pages\Members\Default.cshtml:
@page "/Members"
@model 你的项目命名空间.Pages.Members.DefaultModel

配置后,访问/Products就会直接加载该子文件夹下的Default页面,同理/Members也会匹配对应页面。


方案二:通过路由约定批量配置(适合多子文件夹场景)

在Program.cs中,通过Razor Pages的路由约定为子文件夹添加默认路由规则,无需逐个修改页面:

builder.Services.AddRazorPages(options =>
{
    // 为Products文件夹添加默认路由
    options.Conventions.AddFolderRouteModelConvention("/Products", model =>
    {
        model.Selectors.Add(new SelectorModel
        {
            AttributeRouteModel = new AttributeRouteModel
            {
                Template = "Products"
            }
        });
    });

    // 为Members文件夹添加默认路由
    options.Conventions.AddFolderRouteModelConvention("/Members", model =>
    {
        model.Selectors.Add(new SelectorModel
        {
            AttributeRouteModel = new AttributeRouteModel
            {
                Template = "Members"
            }
        });
    });
});

// 注意中间件顺序:先启用路由,再映射Razor Pages
app.UseRouting();
app.MapRazorPages();

方案三:自动遍历所有子文件夹(适合大量子文件夹场景)

如果Pages下有很多子文件夹,可以通过遍历目录的方式自动添加路由约定,避免重复代码:

builder.Services.AddRazorPages(options =>
{
    var pagesDir = new DirectoryInfo(Path.Combine(builder.Environment.ContentRootPath, "Pages"));
    var subFolders = pagesDir.GetDirectories();

    foreach (var folder in subFolders)
    {
        var folderName = folder.Name;
        options.Conventions.AddFolderRouteModelConvention($"/{folderName}", model =>
        {
            model.Selectors.Add(new SelectorModel
            {
                AttributeRouteModel = new AttributeRouteModel
                {
                    Template = folderName
                }
            });
        });
    }
});

app.UseRouting();
app.MapRazorPages();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 02:47:05