razor - 带有友好路由的 Razor 页面路由没有响应
问题描述
关注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%。
我可以访问该页面的唯一方法是编写完整的文件夹名称。但我不想要这个。我想要一个比目前似乎不可能的文件夹结构更干净的路由结构。
任何建议 - 任何想法?
解决方案
从您链接到的页面:
[AddPageRoute] 方法有两个参数。第一个是不带扩展名的 Razor 页面文件的相对路径
您正在提供包含该页面的文件夹的路径。您需要将“/Index”添加到第一个参数的末尾:
options.Conventions.AddPageRoute("/External/PageA/Index", "A");
处理区域时也是如此。您需要提供实际页面的相对路径,而不是文件夹名称:
options.Conventions.AddAreaPageRoute("External", "/PageA/Index", "/A");
这假设结构如下:
Areas
External
Pages
PageA
Index.cshtml
推荐阅读
- javascript - 从 REST API 调用返回具有唯一值和密钥对的唯一对象?
- php - 如果循环计数是偶数,则将循环分成两半
- c# - 从应用程序名称 IIS 获取应用程序目录
- excel - Sumif 使用偏移量和列函数
- excel - 仅输入字符串或日期类型。我有一个数字示例,但不适用于日期/文本
- javascript - 有没有办法在不下载的情况下显示文件的大小?
- python-3.x - 如何在Python中将一个列表的值分配给第二个列表的值
- php - PHP 和 HTML 表单 - 输入字段中的随机值
- dm-script - 如何使用 StreamWriteAsText() 写入 Number 类型的数据?
- angular - Angular 6 - 第一个完成时开始动画