您如何处理这么多 index.cshtml 页?

How do you cope with so many index.cshtml pages?

我的项目中到处都是 Index.cshtml 页,令人恼火。更不用说还存在多个名为“创建”、“编辑”、“删除”等的页面。从最终用户的角度来看,一切都很好,但作为开发人员,我必须不断地检查我正在使用哪个索引页面(基于包含的文件夹名称)。您如何处理这种情况并简化开发?

首先,正如@gunr2171在评论中所说,默认页面不需要使用Index。

Watch here for change the default routes of application.

此外,我个人尽量使用更少的页面,将相似的页面合并为一个页面并使用 @Html.Partial() 函数加载特定部分。

您需要通过创建具有有意义名称的操作方法来重构您的代码,并相应地重命名您的视图。第一步首先专注于完成任务很好,但是一旦完成功能,返回并重构代码以实现将来的可维护性始终是一个好习惯。

默认情况下,URL 和文件名在 Razor Pages 中紧密耦合。但是,您可以通过 @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 不会更改(无书签对用户来说是坏的)但是在你的项目中你的代码文件被清楚地命名了。

一篇关于该主题的精彩文章 can be found here,作者在其中添加了以下警告:

"...the RedirectToPage method must continue to use the Page's file name"

我要补充一点,类似的警告适用于 asp-page= 标签助手,因此在这种情况下,您需要将它们更改为类似的内容:asp-page="/Home_Index"