【发布时间】:2019-07-12 22:48:52
【问题描述】:
我想使用 Razor Pages 创建一个 ASP.NET Core 2.2 项目。
我的目标是创建一个包含两类 Razor 页面的项目:
- 标准类别:此类别包含将在多个项目之间共享的所有 Razor 页面
- 自定义类别:此类别包含与项目相关的所有 Razor 页面。
到这里一切正常,我在“Pages”目录中创建了两个子文件夹:标准文件夹,自定义文件夹。 我在每个项目中使用我需要的所有剃须刀页面填充标准和自定义文件夹,其中所有剃须刀 Standard folderz 中包含的页面在我的所有项目中都是相同的。
例如
项目A:
- /页
- /标准
- /A 部分
- 页面A
- 页面B
- /A 部分
- /自定义
- /E 节
- 页面D
- /E 节
- /标准
项目 B:
- /页
- /标准
- /A 部分
- 页面A
- 页面B
- /A 部分
- /自定义
- /P 节
- 第K页
- /P 节
- /标准
项目 C:
- /页
- /标准
- /A 部分
- 页面A
- 页面B
- /A 部分
- /自定义
- /第五节
- PageJ
- /第五节
- /标准
我的问题由此而生:我会在每个项目中实现扩展标准的可能性 剃刀页面,可能要重写一些端点(例如我想改变“onGet”的行为 方法)或创建一个新方法(如“onGetMyCustomGet”)。
我知道最简单的解决方案是更改标准剃须刀页面中的代码,但我想要 避免这种情况,因为标准页面可以替换为新版本。因此,标准页面必须是 项目独立并开放扩展。
我的想法是在扩展标准剃须刀的“/自定义”类别中创建一个“假”剃须刀页面 PageModel 并覆盖我需要重新实现的所有方法。
问题是:如何才能返回标准 razor page cshtml 而不是 fakeRazorPage cshtml?有可能吗?
在这里,您将找到一个示例项目https://github.com/Blackleones/RazorPageResearch,如果您想合作,请随时发送拉取请求。
如果没有解决方案,接受其他想法
【问题讨论】:
标签: c# razor asp.net-core