javascript - 无法在 Razor 的部分 View 中使用脚本渲染部分

标签 javascript c# asp.net-mvc razor

我看到了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> }

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

  1. _PartialScripts.cshtml,我没有,需要从我的 Footie 部分中的脚本标记添加填充它。
  2. _Partial.cshtml,这是我当前的 View ,名为 EyeCandy.cshtml
  3. 据我所知,未命名的代码片段对应于我的 _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/

相关文章:

c# - 从 lambda 表达式中检索属性名称

asp.net-mvc - 没有特定 Controller 的 ASP.NET MVC 3 路由

c# - Entity Framework 和 MVC 模型

javascript - 函数不返回记录集

javascript - 在javascript中非随机地从数组中选取颜色

javascript - 在 Rails 7 中激活不可固定的库

c# - 从命令提示符运行单元测试失败

c# - 在 IdentityDbContext 和主应用程序 DbContext 之间共享用户表

javascript - 使用隐藏形式将 JavaScript 分数从游戏发送到 PHP - 我没有得到任何值?

c# - MVC 5 项目中的 Entity Framework 6.0 不工作