【问题标题】:Unable to fix this issue: The following sections have been defined but not rendered for the section无法解决此问题:已定义以下部分,但未为该部分呈现
【发布时间】:2015-07-28 23:45:05
【问题描述】:

我知道这个问题在 stackoverflow 上经常被问到。但是,我实施的解决方案并未修复此错误。

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

在我的 _Layout.cshtml 页面中,我有以下代码:

    <footer>
      <p>&copy;</p>
    </footer>


@RenderSection("Scripts", required: false)

我创建的所有视图都可以找到,但是,由 asp.net mvc 项目预先创建的 Register.cshtml 和 Login.cshtml 以以下行结尾:

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

我试过把这些线去掉,尝试了很多组合,但是问题还没有解决。

任何帮助将不胜感激。 :)

【问题讨论】:

  • required: false 表示它是可选的,因此该错误似乎与您显示的代码无关。布局中还有其他@RenderSection("scripts") 吗?也可以尝试将其包装在 @if (IsSectionDefined("Scripts")) { @RenderSection("scripts" } 中并在 @RenderSection() 上放置一个断点,看看它是否命中。
  • 谢谢,布局中没有其他@RenderSection。我按照您的指示进行操作,@RenderSection() 没有被击中。
  • 您显示的代码对我来说可以正常工作,这表明问题出在您未显示的代码中

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


【解决方案1】:

请注意,布局和页面中的第一个字母的大小写不同。部分名称区分大小写,因此请确定一些内容,例如:

@RenderSection("Scripts", required: false)

【讨论】:

  • 感谢您的关注!不幸的是,修改它并没有解决问题。
  • 只需在我的应用程序中测试更改大小写并没有任何区别(适用于“SCriPtS”)建议部分名称不区分大小写
  • 正如@user3559349所说,部分名称不区分大小写,请更新您的答案
  • @HamzaKhanzada,不幸的是,我对此答案无能为力,因为 OP 将其标记为已接受。当我尝试删除它时,“您无法删除这个已接受的答案”。帖子中描述的错误没有任何其他明显的原因。如果您知道答案是什么,请随时发布一个新答案,希望 OP 会注意到并重新标记
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
  • 2012-06-13
相关资源
最近更新 更多