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

时间:2013-01-31 19:23:56

标签: asp.net-mvc-4

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

我问这个问题是因为我将此文件放在~/Views文件夹中并更改了Layout

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

它仍然有效。

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

3 个答案:

答案 0 :(得分:1)

按照惯例,/views/shared文件夹适用于不同控制器(例如布局和可重用部分)的共享视图。正如您所看到的,只要您正确引用它们,就没有理由不能随意放置布局。

答案 1 :(得分:1)

当布局页面以其完整路径引用时,只要它位于〜/ Views文件夹下的某个位置,就没有区别了。

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

另一个更简单的原因是,无论有任何技术要求,它在惯例方面都“有意义”。

答案 2 :(得分:1)

  • 如果您将@CustomHelpers.RadioButtonList("name", (System.Web.Mvc.SelectListItem[])ViewBag.Tags) 放在_Layout.cshtml文件夹中,则必须在Views中明确指定其文件扩展名。

  • 如果您将Layout="_Layout.cshtml"放在_Layout.cshtmlViews/Shared文件夹中,那么您必须Views/XXX中明确指定其文件扩展名