c# - ScriptManager.RegisterClientScriptIninclude 之后的 Javascript 对象 "is not defined"错误

标签 c# javascript scriptmanager

我有一个外部 js 文件,它基本上是一个 js 对象。我使用 ScriptManager.RegisterClientScriptInclude 方法将文件包含在页面上,之后我使用 ScriptManager.RegisterClientScriptBlock 方法调用 js 对象的方法,但收到“DynamicLoadingPanel 未定义”的 js 错误。我知道当我将它放在 aspx 页面中时该方法调用可以工作,但我认为我得到了 ScriptManager 注册脚本 block 时的计时错误原因。我目前在 Page_Load 事件中有寄存器,下面是我的代码。有人可以帮我理解这里发生了什么吗?谢谢。


Page_Load事件

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.ClientScript.IsClientScriptIncludeRegistered("DynamicLoadingPanel"))
        {
            ScriptManager.RegisterClientScriptInclude(Page, typeof(Page), "DynamicLoadingPanel", "~/dynamicLoadingPanel.js");
            ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "set_LoadingPanelID", "DynamicLoadingPanel.set_loadingPanelID('modalLayer');", true);
        }
    }

最佳答案

经过几次尝试和错误,我终于找到了包含外部js文件的正确方法。因此,对于所有遇到此问题的人,我希望这可以为您节省几个令人沮丧的时间。

要包含您的文件,您必须获取当前 ScriptManager 的对象并将该文件添加到 Scripts 集合中。下面是一个例子。


ScriptManager sm = ScriptManager.GetCurrent(Page);
ScriptReference sr = new ScriptReference("~/scripts/dynamicLoadingPanel.js");
if (!sm.Scripts.Contains(sr))
    sm.Scripts.Add(sr);

关于c# - ScriptManager.RegisterClientScriptIninclude 之后的 Javascript 对象 "is not defined"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2313882/

相关文章:

java - 为什么 eval 类给我一个从 int 到 double 的转换错误?

c# - 如何删除 Entity Framework 生成的 sql 代码中的引号?

c# - 异步方法中的异常处理未捕获异常的令人惊讶的情况

javascript - 禁用 angularjs 数据表中的排序不起作用

javascript - Gatsby:类型错误:无法读取 null 的属性 'map'

javascript - 如何在部分回发中保留脚本 block ?

c# - 是否可以从图书馆/在图书馆中查找或定义资源?

c# - 用于检测 ISO 语言代码的正则表达式

javascript - 网址正则表达式验证

asp.net - 在开发中禁用 ScriptManager 脚本整合?