我看到了cool gadget我想在我的页面上使用它。我已经选择了所有选项,他们生成了一个我应该从我的站点执行的 JS。
由于我使用 Razor,我需要将其渲染为一个部分,因此我添加了一个部分。然而,当我尝试渲染它时,我收到错误消息告诉我:
The file "~/Views/Home/EyeCandy.cshtml" cannot be requested directly because it calls the "RenderSection" method.
所以我用谷歌搜索并找到了一堆解释如何解决它的文章。最好的一个(几个小时后)是 this particular reply 。然而,我就是无法集中注意力并感到困惑。
@{ Layout = "~/Views/Shared/_Default.cshtml"; }
@model List<Donkey>
<h1>List of the eye candies.</h1>
@RenderSection("Footie", false)
@section Footie { <script src="@Url.Content("...")"
async="async"
type="text/javascript"></script> }
在链接的回复中,有三个文件。
- _PartialScripts.cshtml,我没有,需要从我的 Footie 部分中的脚本标记添加填充它。
- _Partial.cshtml,这是我当前的 View ,名为 EyeCandy.cshtml。
- 据我所知,未命名的代码片段对应于我的 _Default.cshtml 布局。
现在,在我看来,这是没有意义的,因为重点是将脚本排除在布局之外,并将其范围限制在我测试视觉效果的一个 View 中。我确信我在这个阶段理解得太慢了,但是如果有人,非常非常地请指出我误解的地方,我会很高兴。
最佳答案
您需要在布局中调用 @RenderSection("Footie", false)
,而不是在特定 View 中。
因此将其添加到您的~/Views/Shared/_Default.cshtml
@RenderSection("Footie", false)
在您的特定 View 中,您可以执行自定义代码,该代码包含在 Footie 部分
@section Footie {
<script src="@Url.Content("...")" async="async" type="text/javascript"></script>
}
关于javascript - 无法在 Razor 的部分 View 中使用脚本渲染部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34568899/