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"; }
您可以将其设置为默认值(正如他在第二个示例中所做的那样)或制作您自己的“自定义”(从现在开始他可能会这样做)。
一旦你学到了更多(创建布局表/等),作者可能会进入更多/更好的细节。