Razor Pages 找不到子文件夹索引页

Razor Pages not finding subfolder index page

这可能是一个愚蠢的问题,但我似乎无法获得 Razor Pages 项目来正确定位放置在子文件夹中的索引文件。

基于对 razor 页面的介绍:https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-5.0&tabs=visual-studio

以下结构有效。

File name and path                  matching URL
/Pages/Index.cshtml                 / or /Index
/Pages/Contact.cshtml               /Contact
/Pages/Store/Contact.cshtml         /Store/Contact
/Pages/Store/Index.cshtml           /Store or /Store/Index

列出的最后一项是我遇到的问题。似乎如果我尝试指定 /Store 它将无法找到正确的页面。如果我指定 /Store/Index 它会起作用..

以下是复制方法。

  1. 使用 RazorPages 创建 ASP.NET 核心 WebApp 项目
  2. 在名为 Store
  3. 的页面下创建一个文件夹
  4. 在名为 Index
  5. 的文件夹下创建一个 razor 页面
  6. 更新 _Layout 页面以指向 asp-page="/Store"
  7. 尝试 运行 应用程序并单击导航 link 发现它不会加载页面
  8. 将 link 更新为 asp-page="/Store/Index" 和 运行 应用以查看 link 现在已正确路由

我是不是完全漏掉了什么?

asp-page 属性需要页面名称。它不是 URL。由于该页面名为 Index,因此您需要将其包含在内。页面的“名称”基本上是其以页面为根的相对路径,减去文件扩展名。但需要注意的重要部分是,在尝试 link 到名为 Index.

的文件时,必须包含“Index”