为什么默认_Layout.cshtml
放在文件夹中?~/Views/Shared
我问这个问题是因为我把这个文件放在~/Views
文件夹中并更改Layout
了_ViewStart.cshtml
@{
Layout = "~/views/_Layout.cshtml";
}
它仍然有效。
是否出于特殊目的默认_Layout.cshtml
放置在文件夹中?~/Views/Shared
为什么默认_Layout.cshtml
放在文件夹中?~/Views/Shared
我问这个问题是因为我把这个文件放在~/Views
文件夹中并更改Layout
了_ViewStart.cshtml
@{
Layout = "~/views/_Layout.cshtml";
}
它仍然有效。
是否出于特殊目的默认_Layout.cshtml
放置在文件夹中?~/Views/Shared
按照惯例,该/views/shared
文件夹用于由不同控制器共享的视图,例如布局和可重用的局部视图。如您所见,没有理由不能将布局放在您想要的任何位置,只要您正确引用它们。
当布局页面由其完整路径引用时,您是对的,它在哪里没有区别,只要它位于 ~/Views 文件夹下的某个位置。
一种重要的情况(但通常不重要)是,当您在控制器操作中调用“View()”的重载时,它允许您指定备用布局(主)页面。如果是这种情况,并且指定的名称是“简单”名称,例如“MobileLayout”,则默认搜索路径将首先是当前控制器的视图文件夹,然后是共享视图文件夹。
另一个更简单的原因是它在约定方面“有意义”,而不管任何技术要求。
如果将_Layout.cshtml
inViews
文件夹放入,则必须在Layout="_Layout.cshtml"
.
如果您将_Layout.cshtml
inViews/Shared
或Views/XXX
文件夹放入,则不得在Layout="_Layout"
.