首页 > 解决方案 > 你如何处理这么多 index.cshtml 页面?

问题描述

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

在此处输入图像描述

标签: asp.net-corerazor-pages

解决方案


默认情况下,Razor Pages 中的 URL 和文件名紧密耦合。但是,您可以通过@Page指令(出现在.cshtml文件开头)更改路由来将它们解耦。这允许您重命名.cshtml项目中的文件但保留现有 URL。

例如,重命名默认页面Pages/Index.cshtmlPages/Home_Index.cshtml然后将@Page指令更改为@Page "/".

同样,您可以重命名页面Pages/PCL/Index.cshtmlPages/PCL/PCL_Index.cshtml然后将其@Page指令更改为@Page "/PCL"URL 不变(没有为用户损坏书签),但在您的项目中,您的代码文件已明确命名。

在此处输入图像描述

可以在此处找到有关该主题的出色文章,其中作者添加了此警告:

“...RedirectToPage 方法必须继续使用页面的文件名”

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


推荐阅读