c# - ViewStart 和 Layout - 有什么区别?

标签 c# asp.net-mvc razor asp.net-mvc-layout

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

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

@{
     Layout = null;
 }

它告诉我这个 View 没有布局,但是如果我让它像:

@{

 }

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

最佳答案

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

当我们创建一个主布局 View 时,默认主布局是_Layout.cshtml,但我们可以从_ViewStart.cshtml

当我们写的时候:

@{
     Layout = null;
 }

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

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

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

如果需要,我们可以更改它。

您还可以通过在其顶部写上主布局 View 的 url 来更改某些特定 View 的主布局:

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

关于c# - ViewStart 和 Layout - 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25290030/

相关文章:

c# - 为什么在我的项目中创建 “ProjectName_TemporaryKey.pfx”文件?

javascript - HTML 表格和数据表对齐

c# - 在 ASP.NET MVC 中对呈现的 View 进行单元测试

c# - 是否可以将 ModelExpression 传递给 TagHelper?

html - ASP.NET MVC4 中的水印 Html.TextBox

c# - 如果未找到 UI 元素,如何使测试失败?

c# - 无需 wddm 1.1 即可运行 Windows 7 模拟器

jquery - 如何在asp.net mvc中将Textbox值发送到ActionLink

c# - File.Exists() 和跨进程的文件访问同步

c# - SQL 查询在代码中超时,但在管理工作室中需要几秒钟