簡體   English   中英

如何在每個局部視圖中完全包含一次外部JavaScript文件?

[英]How can I include an external JavaScript file exactly once per partial view?

我有一個局部視圖(UserControl),它在Asp.Net MVC項目中實現了一個簡單的尋呼機。 無論母頁面上有多少個分頁控件實例,此分頁器都需要訪問一次僅需要包含一次的.js文件。

我嘗試使用Page.ClientScript.RegisterClientScriptInclude ,但是它沒有任何效果(我認為是因為對代碼塊的評估太遲而無法影響頭部控件)。 有沒有簡單的選擇?

將其添加到母版頁。

這樣您就可以保證僅將其包含一次,並且您不會忘記它。借助現代緩存,在每個頁面上包含它的確沒有性能損失。

在部分發送腳本時,在HttpContext.Current.Items中設置一個標志-這是一本字典,可以滿足整個請求。 例如:

if (!HttpContext.Current.Items.Contains("SentTheScript"))
{
    HttpContext.Current.Items["SentTheScript"] = true;
    Response.Write(Html.ScriptTag("Script"));
}

這樣,它將最多渲染一次。

Page.ClientScript.RegisterClientScriptInclude與傳統的ASP.net一起使用。

由於您使用的是asp.net-mvc,因此只需將js文件的script指令添加到使用此用戶控件的頁面即可。

由於最好的做法是在所有站點上只有一個縮小的CSS文件,因此您可能希望將此文件包括在主要的縮小CSS文件中。

暫無
暫無

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

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