【问题标题】:Razor Page Routing with Friendly Routes not responding带有友好路由的 Razor 页面路由没有响应
【发布时间】:2019-03-21 21:19:47
【问题描述】:

关注https://www.learnrazorpages.com/razor-pages/routing 和“友好路线”

使用此文件夹结构:

~Pages / (or "Areas" in last example)
External
      PageA
          Index.cshtml
Internal
      PageB
          Index.cshtml

然后我想添加这些路线

services.AddMvc()
.AddRazorPages(options =>
{
    // Even though above guide states this route it...
    // throws exception for "External/PageA" so I have to set "/External/PageA"
    options.Conventions.AddPageRoute("External/PageA", "/A"); 
    // throws exception for "External/PageB" so I have to set "/External/PageB" 
    options.Conventions.AddPageRoute("Internal/PageB", "/B");
});

但我得到的只是 404 未找到。我尝试了多种组合。我什至遵循了区域设置并将其移动到区域文件夹内具有相同结构的区域:

services.AddMvc()
.AddRazorPages(options =>
{
    options.AllowAreas = true;
    // Also tried "PageA" and "/PageA", "A" and "/A"
    options.Conventions.AddAreaPageRoute("External", "/PageA", "/A");
    // Also tried "PageB" and "/PageB", "B" and "/B"
    options.Conventions.AddAreaPageRoute("Internal", "/PageB", "/B");
});

这更像是整个会议设置完全被忽略了,因为进展为 0%。

我可以访问该页面的唯一方法是编写完整的文件夹名称。但我不想要这个。我想要一个比目前看来不可能的文件夹结构更简洁的路由结构。

有什么建议 - 有什么想法吗?

【问题讨论】:

    标签: razor routing razor-pages


    【解决方案1】:

    从您链接到的页面:

    [AddPageRoute] 方法有两个参数。第一个是Razor页面文件的相对路径,不带扩展名

    您正在提供包含该页面的文件夹 的路径。您需要在第一个参数的末尾添加“/Index”:

    options.Conventions.AddPageRoute("/External/PageA/Index", "A");

    在处理区域时也是如此。您需要提供实际页面的相对路径,而不是文件夹名称:

    options.Conventions.AddAreaPageRoute("External", "/PageA/Index", "/A");

    假设结构如下:

    Areas External Pages PageA Index.cshtml

    【讨论】:

      猜你喜欢
      • 2021-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2019-05-10
      • 2021-11-22
      • 2019-05-22
      • 1970-01-01
      相关资源
      最近更新 更多