Asp.net 注册客户端criptinclude不';因为某种原因我不能工作

Asp.net 注册客户端criptinclude不';因为某种原因我不能工作,asp.net,javascript,ajax,scriptmanager,Asp.net,Javascript,Ajax,Scriptmanager,我已经花了至少两天的时间尝试任何东西并在谷歌上搜索这个……但由于某种原因,我无法让RegisterClient ScriptInclude以其他人的方式工作 首先,我正在使用.NET 3.5 Ajax,…并且我在部分页面刷新中包含javascript…使用以下代码: ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "MyClientCode", script, true); 它工作得很好,脚本变量中包含的javascrip

我已经花了至少两天的时间尝试任何东西并在谷歌上搜索这个……但由于某种原因,我无法让RegisterClient ScriptInclude以其他人的方式工作

首先,我正在使用.NET 3.5 Ajax,…并且我在部分页面刷新中包含javascript…使用以下代码:

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "MyClientCode", script, true);
它工作得很好,脚本变量中包含的javascript代码在每次部分刷新时都会被包含

脚本中的javascript实际上非常广泛,我想将其存储在一个.js文件中,…因此,从逻辑上讲,我创建了一个.js文件,并尝试使用RegisterClientScriptInclude将其包括在内…但是,在我的一生中,我无法让它正常工作。下面是确切的代码:

ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "mytestscript", "/js/testscript.js");
testscript.js文件仅包含在整页刷新中…即。当我加载页面或进行完整回发时……我无法将文件包含在部分刷新中……不知道为什么……在firebug中查看ajax帖子时,我看不出是否包含文件有什么区别

这两个ScriptManager包含都是从“Page_Load”中完全相同的位置运行的……因此它们应该执行每个部分刷新(但只有ScriptBlock执行)

无论如何,…任何帮助或想法,…或我可以解决这个问题的其他方法,都将不胜感激

谢谢, 安德鲁这是关键:

部分页面刷新

在初始加载之后,您必须跳过特殊的限制才能将javascript添加到页面中,因为稍后加载javascript被一些人认为是一种安全风险(这对Google索引也不好)


相反,在初始页面加载时注册脚本,直到稍后才执行脚本。如果这些脚本是动态创建的,我建议您排除静态部分并重构为可以使用页面刷新动态返回的信息调用的方法。

谢谢,最初注册脚本然后稍后执行脚本的问题是,我的脚本中有事件侦听器。因此,如果我在updatepanel中的某个div中注册一个脚本来侦听单击事件……那么我的updatepanel将刷新……我必须使用RegisterClientScriptBlock重新加载侦听器才能正常工作……我只是不想在我的codebehind中使用javascript代码……这些.js文件实际上应该只声明以后可以从中调用的方法您自己的代码(在这种情况下,最有可能使用RegisterClientScriptBlock)。您试图使用函数调用之类的include文件,这就是您遇到问题的原因,只是不应该使用它们。