开发过程中发现一个奇怪的问题,在view视图中根本就没有引用_Layout.cshtml,但还是自动加载了。
经过查找,发现根本原因是这样的
当我们的页面未指定Layout的时候,如果项目在全局或在同文件夹内存在_ViewStart.cshtml时该页面的Layout会自动继承自_ViewStart.cshtml,如果不同的文件夹层级都存在_ViewStart.cshtml,则继承离该页面最近的一个。_ViewStart.cshtml是一个特殊的文件。
查看_ViewStart.cshtml,发现里面只有一句话
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
原来如此啊~