簡體   English   中英

從局部視圖添加對html head標記的腳本引用

[英]Adding a script reference to the html head tag from a partial view

如何注入腳本標記,如

<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. -->

即使THX的答案有效,但它並不是一個好的,因為MVC的意圖是無國界的無國籍。 此外,他的解決方案不允許您將腳本放在應該去的位置 - 大多數站點都希望在</body>標記之前的頁面底部進行腳本聲明,因為它最適合性能和搜索引擎優化。

有一個答案,感謝Darin Dimitrov

使用編輯器/顯示模板中的部分

他的回答允許您在布局視圖中從局部視圖注冊腳本。

需要注意的是,他在字典對象中使用GUID來回答標記項目,因此無法保證腳本將按照它們在局部視圖中列出的順序在主頁面中呈現。

有兩種解決方法:

  1. 從局部視圖中僅注冊1個腳本- 或 -
  2. 更改他的HTML Helper實現以支持排序

我正在努力研究后來的自己。

祝好運。

部分視圖是UserControl 你不能使用ClientScriptManager RegisterClientScriptInclude方法嗎?

protected override void OnLoad(EventArgs e) {
    base.OnLoad(e);
    Page.ClientScript.RegisterClientScriptInclude("some key", "http://website/javascript.js");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM