繁体   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