【问题标题】:Have not been rendered for the layout page尚未为布局页面渲染
【发布时间】:2016-05-12 06:45:18
【问题描述】:

我从共享文件夹中删除了我的_Layout.cshtml,并创建了一个新的_Layout.cshtml,但不幸的是它不起作用。

扔掉这个

以下部分已定义但尚未为布局页面“~/Views/Shared/_Layout.cshtml”呈现:“脚本”。

如果设置了我的页面就可以工作

@{
    ViewBag.Title = "Index";
    Layout = null;
}

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

所以我对设置这种方式不感兴趣,因为我有 100 多个查看页面对我有帮助。我该怎么做呢

谢谢

【问题讨论】:

  • 您的新布局丢失@RenderSection("Scripts", false)
  • @StephenMuecke 是的,失踪了。现在它正在工作

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

在您的布局页面中,您应该会看到

@RenderSection("Scripts", true)

@RenderSection("Scripts")

这基本上指示解释器使用此布局的任何页面都应该有一个脚本部分,例如:

@section Scripts {
//whatever goes here
}

如果您不想要该部分,只需从布局页面中删除 @RenderSection,或者如果您希望它是可选的,请将 @RenderSection("Scripts", false) 中的第二个参数更改为 false。否则,如上所述将脚本部分添加到您的子页面。

【讨论】:

    【解决方案2】:

    您确定布局位于正确的共享文件夹中吗?如果可以,请您发布布局的标题部分吗?

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多