无法在Razor的局部视图中使用脚本渲染节

时间:2016-01-02 17:54:06

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

我见过.load(),我想在我的页面上使用它。我已经选择了所有选项,他们制作了一个我应该从我的网站上执行的JS。

由于我正在使用Razor,我需要将其渲染为一个部分,所以我添加了一个。但是,当我尝试渲染它时,我收到错误消息告诉我:

  

无法直接请求文件“〜/ Views / Home / EyeCandy.cshtml”,因为它调用了“RenderSection”方法。

所以我用Google搜索并发现了一堆解释如何解决它的文章。最好的一个(几个小时后)是cool gadget。但是,我只是无法绕过它而感到困惑。

@{ 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> }

在链接的回复中,有三个文件。

  1. _PartialScripts.cshtml ,我没有,需要在 Footie 部分的脚本标记中添加填充。
  2. _Partial.cshtml ,这是我当前的名为 EyeCandy.cshtml 的视图。
  3. 我所理解的未命名代码段对应于我的 _Default.cshtml 布局。
  4. 现在,在我看来,它没有意义,因为重点是让脚本不在布局中,并将其范围限制在我测试眼睛糖果的一个视图中。我确信我在这个阶段得到的速度太慢了,但如果有人,非常漂亮,请指出我想念的东西,我会很开心。

1 个答案:

答案 0 :(得分:3)

您需要在布局中调用@RenderSection("Footie", false),而不是在特定视图中。

请将此添加到您的~/Views/Shared/_Default.cshtml

@RenderSection("Footie", false)

在您的特定视图中,您可以执行自定义代码,该代码包含在Footie section

@section Footie { 
  <script src="@Url.Content("...")" async="async" type="text/javascript"></script> 
}