c# - 从覆盖页面到非覆盖页面的页面链接未正确生成
问题描述
我试图通过在“Pages/Overrides”文件夹中放置另一个具有相同名称的页面来覆盖位于“Pages/Theme”中的现有“Theme”页面。我通过创建一个名为的 PageRouteModelConvention 来做到这一点ThemeTemplatePageRouteModelConvention
。“Pages/Overrides”文件夹中的任何页面都可以在没有“/Overrides/”路由前缀的情况下访问,并且优先于“Pages/Theme”文件夹中类似名称的视图。
在此处查看我的示例存储库:https ://github.com/bryandh/razor-page-override
在当前设置中,我们在 Pages/Theme 中有三个页面:
- 指数
- 关于
- 接触
以及 Pages/Overrides 中的两个页面:
- 指数
- 关于
我希望这些页面的行为:
- 使用 Pages/Overrides 使用 / 路由的索引页面
- 关于页面与 /about 路由使用的页面/覆盖
- 使用 Pages/Theme 的 /contact 路由的联系页面
这可以按我的意愿工作。
但是,使用锚标签助手在 Pages/Theme/Components/_Header 中创建的锚标签部分到 Pages/Theme 中的非覆盖页面不会创建正确的路由。
请参阅包含 _Header 组件的根/索引页面。关于页面链接生成正确,因为关于页面也在同一个文件夹中。但是,联系人页面链接似乎没有正确生成。仅当您位于“联系”页面本身时,此指向“联系”页面的链接才有效,因为它位于“页面/主题”中。锚标记的生成似乎没有考虑可以定位的位置视图。
因为链接位于我不想覆盖的组件中,所以我无法修改asp-page
属性来解决问题。
如何让 Header 组件从覆盖的 Index 页面生成到 Contact Theme 页面的链接?
[更新]
为了进一步澄清,请参阅下面的页面覆盖结构。asp-page
标签助手找不到要为其创建路由的联系人页面。
注意:可以通过手动导航到“联系人”页面/contact
。
解决方案
推荐阅读
- ios - iOS 上的 Vuforia - 如何抓取相机帧
- sql-server - AWS DMS CDC SQL Server 源在调用 sys.fn_dump_dblog 时无法启动
- python - 将项目任务标签限定为项目标签
- c# - 具有 JWT 身份验证和多个提供程序的 .Net Core Web API
- mysql - 在 Galera 集群中读取插入的行(一个数据库连接,自动提交的查询)失败
- java - 如何在 javaFX 中从 ComobBox 中获取文本?
- typescript - “声明类型”和“类型”有什么区别
- jquery - 日期选择器不适用于动态元素 - Jquery
- php - 似乎无法从 PHP 和 MySQL 中转义字符
- python - Matplotlib 水平条形图向条形添加值