ViewStart和Layout – 有什么区别?

我刚开始阅读ASP.NET MVC 4书并得到一个问题。 在Razor部分作者说,如果我不在View.cshtml文件中设置Layout变量,它将默认搜索_ViewStart.cshtml,但在另一部分他在Views / Shared中使用_Layout.cshtml,我不明白。

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

@{ Layout = null; } 

它告诉我这个View没有布局,但如果我这样做:

 @{ } 

那么这将使View将搜索_ViewStart.cshtml文件或_Layout.cshtml?

基本上默认情况下,我们在Views >> Shared >> _Layout.cshtml中有主布局,这个东西在_ViewStart.cshtml中定义,哪一个是我们的默认主布局。

当我们默认创建一个包含主布局的视图时,它的主布局是_Layout.cshtml ,但我们可以从_ViewStart.cshtml更改它

当我们写:

 @{ Layout = null; } 

在我们的视图中,我们说这个视图没有任何主布局,这在我们主要创建局部视图或没有主布局的独立视图时使用。

如果您默认打开_ViewStart.cshtml ,则会在其中写入:

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

如果我们愿意,我们可以改变它。

您还可以通过在其上面写入主布局视图的URL来更改某些特定视图主布局:

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

您可以将其设置为默认值(正如他在第二个示例中所做的那样)或制作您自己的“自定义”(从现在开始他可能会这样做)。

一旦你学到了更多(创建布局表/等),作者可能会进入更多/更好的细节。