从局部视图添加对html head标记的脚本引用

时间:2009-11-20 03:21:57

标签: asp.net-mvc partial-views

如何注入脚本标记,例如

<script src="somejsfile"></script>

<script type="text/javascript>some javascript</script>

从局部视图进入页面的head标签?


更新:回答旧问题 这是关于ASP.NET MVC。我们可以使用RenderSection。这里是使用Razor视图引擎的MVC 3示例:

布局视图或母版页:

<html>
  <head>
  <script ...></script>
  <link .../>
  @RenderSection("head")
  </head>
  <body>
  ...
  @RenderBody()
  ...
  </body>
</html>

查看,例如主页:

@section head{
  <!-- Here is what you can inject the header -->
  <script ...></script>
  @MyClass.GenerateMoreScript()
}
<!-- Here is your home html where the @RenderBody() located in the layout. -->

2 个答案:

答案 0 :(得分:2)

即使THX的答案有效,但它并不是一个好的,因为MVC的意图是无国界的无国籍。此外,他的解决方案不允许您将脚本放在应该去的位置 - 大多数网站都希望在 </body> 标记之前的页面底部进行脚本声明,因为它最适合性能和搜索引擎优化。

有一个答案,感谢Darin Dimitrov

Using sections in Editor/Display templates

他的回答允许您在布局视图中从局部视图中注册脚本。

警告是他的答案使用字典对象中的GUID标记项目,因此无法保证脚本将按照部分视图中列出的顺序在母版页中呈现。

有两种解决方法:

  1. 仅从部分视图注册1个脚本 - 或 -
  2. 更改其HTML Helper实施以支持订购
  3. 我正在努力研究后来的自己。

    祝你好运。

答案 1 :(得分:0)

部分观点为UserControl。你不能使用RegisterClientScriptInclude的{​​{1}}方法吗?

ClientScriptManager