如何在每个局部视图中包含一次外部JavaScript文件?

Aar*_*ieb 5 javascript asp.net-mvc include

我有一个局部视图(UserControl),它在我的Asp.Net MVC项目中实现了一个简单的寻呼机.此寻呼机需要访问一个只需要包含一次的.js文件,无论父页面上有多少个寻呼机控件实例.

我试过使用Page.ClientScript.RegisterClientScriptInclude,但它没有效果(我假设因为代码块的评估太晚而不影响头控制).有没有简单的替代方案?

kev*_*ner 2

当您在部分中发送脚本时,在HttpContext.Current.Items中设置一个标志- 它是一个在整个请求中保留的字典。例如:

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

这样它最多会被渲染一次。