2

为什么默认_Layout.cshtml放在文件夹中?~/Views/Shared

我问这个问题是因为我把这个文件放在~/Views文件夹中并更改Layout_ViewStart.cshtml

@{
    Layout = "~/views/_Layout.cshtml";
}

它仍然有效。

是否出于特殊目的默认_Layout.cshtml放置在文件夹中?~/Views/Shared

4

3 回答 3

1

按照惯例,该/views/shared文件夹用于由不同控制器共享的视图,例如布局和可重用的局部视图。如您所见,没有理由不能将布局放在您想要的任何位置,只要您正确引用它们。

于 2013-01-31T20:03:53.180 回答
1

当布局页面由其完整路径引用时,您是对的,它在哪里没有区别,只要它位于 ~/Views 文件夹下的某个位置。

一种重要的情况(但通常不重要)是,当您在控制器操作中调用“View()”的重载时,它允许您指定备用布局(主)页面。如果是这种情况,并且指定的名称是“简单”名称,例如“MobileLayout”,则默认搜索路径将首先是当前控制器的视图文件夹,然后是共享视图文件夹。

另一个更简单的原因是它在约定方面“有意义”,而不管任何技术要求。

于 2013-01-31T20:05:15.077 回答
1
  • 如果将_Layout.cshtmlinViews文件夹放入,则必须在Layout="_Layout.cshtml".

  • 如果您将_Layout.cshtmlinViews/SharedViews/XXX文件夹放入,则不得Layout="_Layout".

于 2016-10-24T10:15:54.643 回答