我的项目到处都是Index.cshtml页面,这很令人困惑。更不用说还存在多个名为“创建”,“编辑”,“删除”等的页面。从最终用户的角度来看,一切都很好,但是作为开发人员,我必须不断检查我正在使用哪个索引页面(基于包含的文件夹名称)。您如何处理这种情况并简化开发?
您如何处理这么多的index.cshtml页面?
•
问答
lixiangzyz 回答:您如何处理这么多的index.cshtml页面?
在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不会更改(用户不会破坏书签)在项目中,您的代码文件已明确命名。
关于主题can be found here的出色文章,作者为此添加了警告:
“” ... RedirectToPage方法必须继续使用页面的文件名“
我要补充一点,asp-page=
标记助手也有类似的警告,因此在这种情况下,您需要将它们更改为:asp-page="/Home_Index"
总之,正如@ gunr2171在评论中所说,不需要将“索引”用作默认页面。
Watch here for change the default routes of application.
我个人还尝试使用更少的页面,将相似的页面合并为一个页面,并使用@Html.Partial()
函数加载特定的部分。
您需要通过使用有意义的名称创建操作方法来重构代码,并相应地重命名视图。最好先着重于第一步的完成工作,但是一旦完成功能,回头再重构代码以实现将来的可维护性始终是个好习惯。