为什么_Layout.cshtml
默认放在~/Views/Shared
文件夹中?
我问这个问题是因为我将此文件放在~/Views
文件夹中并更改了Layout
_ViewStart.cshtml
值
@{
Layout = "~/views/_Layout.cshtml";
}
它仍然有效。
出于特殊目的,_Layout.cshtml
默认放置在~/Views/Shared
文件夹中吗?
答案 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.cshtml
或Views/Shared
文件夹中,那么您必须不在Views/XXX
中明确指定其文件扩展名