在部分视图或其他视图上实现@RenderSection(“ scripts”,必需:false)

时间:2019-11-18 13:32:51

标签: asp.net .net asp.net-core

我有_footer.cshtml部分视图,其中包含

<footer>

//some necessary containers and content 

    @RenderSection("scripts", required: false)
</footer>

现在我在_Layout.cshtml上调用页脚(它向我显示错误)

@await Html.PartialAsync("_Footer.cshtml")
  

我收到以下错误   my error

在许多自定义布局使用的页脚上呈现此部分脚本的最佳方法是什么?

(此后,我在布局上实现了渲染脚本,但我正在寻找另一个更优雅的解决方案)

1 个答案:

答案 0 :(得分:0)

部分视图没有部分。这是设计使然。主视图或页面负责获取页面正常运行所需的脚本和CSS。

您可以尝试使用这些必需的CSS和JS定义新的布局,cshtml,然后在您的特殊视图中引用此新的layout.chstml。

@{
  Layout = "_NewLayout";
 }

此外,您可以使用一些自定义助手来实现类似的行为,但是老实说,包括必要的脚本是视图的责任,而不是部分的责任。我建议使用主视图的@scripts部分来执行此操作,而不必担心脚本的局部问题。

参考:

https://stackoverflow.com/a/56918543/10201850

https://forums.asp.net/t/2138905.aspx?How+can+RenderSection+works+in+Partial+Views+of+net+core+