C# ViewStart和Layout-what';有什么区别?

C# ViewStart和Layout-what';有什么区别?,c#,asp.net-mvc,razor,asp.net-mvc-layout,C#,Asp.net Mvc,Razor,Asp.net Mvc Layout,我刚开始读ASP.NETMVC4的书,有一个问题。在Razor部分中,作者说如果我不在View.cshtml文件中设置布局变量,它将作为默认搜索_ViewStart.cshtml,但在另一部分中,他在Views/Shared中使用_Layout.cshtml,我不明白 如果我在View.cshtml中得到这样的smth: @{ Layout = null; } 它表明此视图没有布局,但如果我将其设置为: @{ } 因此,这将使视图搜索一个_ViewStart.cshtml文件

我刚开始读ASP.NETMVC4的书,有一个问题。在Razor部分中,作者说如果我不在View.cshtml文件中设置布局变量,它将作为默认搜索_ViewStart.cshtml,但在另一部分中,他在Views/Shared中使用_Layout.cshtml,我不明白

如果我在View.cshtml中得到这样的smth:

@{
     Layout = null;
 }
它表明此视图没有布局,但如果我将其设置为:

@{

 }
因此,这将使视图搜索一个_ViewStart.cshtml文件或_Layout.cshtml?

您可以将其设置为默认值(如他在第二个示例中所做的)或创建您自己的“自定义”文件(从现在起他可能会这样做)


一旦你学到了更多(创建布局表等),作者可能会更详细地介绍。

基本上默认情况下,我们在视图>>共享>>中有主布局\u layout.cshtml,这是在\u ViewStart.cshtml中定义的,哪一个是我们的默认主布局

默认情况下,使用主布局创建视图时,其主布局为\u layout.cshtml,但我们可以从\u ViewStart.cshtml更改它

当我们写作时:

@{
     Layout = null;
 }
在我们看来,我们说这个视图没有任何主布局,当我们主要创建局部视图或没有主布局的独立视图时,会使用它

如果在默认情况下打开\u ViewStart.cshtml,则其中会写入以下内容:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
如果我们愿意,我们可以改变它

您还可以通过在某些特定视图主布局的顶部写入主布局视图的url来更改主布局:

@{
        Layout = "~/Views/Shared/_CustomMasterLayout.cshtml";
 }

我的问题是,如果我没有像第二个代码段那样设置布局而离开视图,那么它将搜索_ViewStart.cshtml或_Layout.cshtml;d_Layout.cshtml。默认情况下,ViewStart仅在第一页上使用。布局不同。(据我回忆)。不,就像Ehsan说的,每个没有设置布局变量的视图都在搜索一个_ViewStart.cshtmlSorry!Tbh我并没有真正弄乱布局部分,因为有不同的引导“主题”在改变网站外观方面非常有用。但那是另一天!哦,天哪,nvm我注意到他开始使用Layout,就像“WTF他说空的Layout会搜索ViewStart”,我刚刚注意到在…之前还有一个ViewStart文件夹:D谢谢!:)