如何让AjaxControlToolkit使用最新版JQuery或不嵌入旧版JQuery?
解决AjaxControlToolkit自动引入旧版JQuery的问题
针对你遇到的AjaxControlToolkit生成的合并脚本(带TSM_CombinedScripts参数的URL)自动嵌入JQuery 1.9.1的问题,试试以下几种方案:
1. 修正AjaxControlToolkit.config配置
如果之前的配置没生效,大概率是节点结构不对。确保配置文件放在项目根目录,内容如下:
<?xml version="1.0" encoding="utf-8"?> <ajaxControlToolkit> <toolkitScriptManager> <scripts> <!-- 移除内置的JQuery引用 --> <remove name="jQuery" /> </scripts> <!-- 彻底禁用控件自动导入脚本的功能 --> <autoImportScripts>false</autoImportScripts> </toolkitScriptManager> </ajaxControlToolkit>
这个配置会全局移除Toolkit自带的JQuery,同时阻止它自动导入任何依赖脚本,完全由你自己控制页面的脚本引用。
2. 页面级直接禁用自动导入
如果全局配置不生效,或者你只想针对特定页面处理,可以在页面的ToolkitScriptManager控件上直接设置属性:
<ajaxToolkit:ToolkitScriptManager runat="server" AutoImportScripts="false"> <!-- 这里可以手动添加你需要的其他Toolkit依赖脚本(如果需要的话) --> </ajaxToolkit:ToolkitScriptManager>
设置AutoImportScripts="false"后,控件就不会自动注入任何内置脚本,包括JQuery。
3. 排查缓存与重复配置
- 清理浏览器缓存、项目的
Bin目录(重新生成项目),以及ASP.NET临时文件(通常在C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files下),旧缓存可能导致配置不生效。 - 检查母版页或者布局页是否也有
ToolkitScriptManager,如果有,需要在那里也做同样的配置,否则母版页的设置会覆盖页面级的配置。
4. 极端情况:替换内置脚本映射
如果以上方法都没用,可以尝试在web.config里直接覆盖Toolkit的JQuery脚本引用(不过既然你已经在页面引入了新版本,这个只是备选方案):
<configuration> <system.web> <pages> <controls> <add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" /> </controls> </pages> </system.web> <ajaxControlToolkit> <scriptReferences> <add name="jQuery" path="~/Scripts/jquery-3.6.4.min.js" /> </scriptReferences> </ajaxControlToolkit> </configuration>
内容的提问来源于stack exchange,提问作者Colin Plater
相关产品推荐
相关产品推荐

