0

我花了至少 2 天的时间尝试任何事情并在谷歌上搜索......但由于某种原因,我无法让 RegisterClientScriptInclude 像其他人一样工作?

首先,我正在使用 .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 POST 时我看不到我是否包含文件的区别....

两个 ScriptManager Includes 都从“Page_Load”中的完全相同的位置运行......因此它们应该执行每次部分刷新(但只有 ScriptBlock 会执行)。

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

谢谢,安德鲁

4

1 回答 1

1

这是关键:

部分页面刷新

在初始加载后,您必须跳过特殊的环节才能将 javascript 添加到页面,因为稍后加载 javascript 被某些人认为是安全风险(这对 Google 索引也不利)。

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

于 2010-03-24T16:44:21.593 回答