在局部视图上或其替代处,实施@RenderSection(“ scripts”,必填:false)

问题描述 投票:0回答:1

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

<footer>

//some necessary containers and content 

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

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

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

我收到以下错误my error

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

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

asp.net .net asp.net-core
1个回答
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+

© www.soinside.com 2019 - 2024. All rights reserved.