asp.net-core - 你如何处理这么多 index.cshtml 页面?
问题描述
我的项目中到处都是 Index.cshtml 页面,令人烦恼。更不用说还存在多个名为 Create、Edit、Delete 等的页面。从最终用户的角度来看,一切都很好,但作为开发人员,我必须不断检查我正在使用的索引页面(基于包含的文件夹名称)。您如何处理这种情况并简化开发?
解决方案
默认情况下,Razor Pages 中的 URL 和文件名紧密耦合。但是,您可以通过@Page
指令(出现在.cshtml
文件开头)更改路由来将它们解耦。这允许您重命名.cshtml
项目中的文件但保留现有 URL。
例如,重命名默认页面Pages/Index.cshtml
,Pages/Home_Index.cshtml
然后将@Page
指令更改为@Page "/"
.
同样,您可以重命名页面Pages/PCL/Index.cshtml
,Pages/PCL/PCL_Index.cshtml
然后将其@Page
指令更改为@Page "/PCL"
URL 不变(没有为用户损坏书签),但在您的项目中,您的代码文件已明确命名。
可以在此处找到有关该主题的出色文章,其中作者添加了此警告:
“...RedirectToPage 方法必须继续使用页面的文件名”
我将补充一点,类似的警告适用于asp-page=
标签助手,因此在这种情况下,您需要将它们更改为:asp-page="/Home_Index"
推荐阅读
- mongodb - MongoDb 索引对原始表的引用
- matplotlib - 有没有办法制造出情节中的文字被“突出显示”的错觉?
- java - OR 结果来自一系列布尔返回方法
- neo4j - 提取由关系排序的图路径中的节点
- r - 在系统发育树中为标签添加长度
- javascript - 如何让我的 Discord Bot 回复并提及?
- bootstrap-4 - 视觉工作室 2019;引导命令。“类名”不起作用
- sql-server - SQL Server:根据开始和结束日期将一行分成几行
- google-analytics - 如何在 Nuxt Head 和 Body 中动态添加自定义脚本代码?
- javascript - Vuetify 的 v-expand-transition 没有 v-show/v-if?