添加RequiredFieldValidator触发“jquery不是有效脚本名”错误求助
问题分析与解决方法
可能的错误原因
- NuGet包安装后,web.config中的脚本资源映射未正确配置,导致系统无法识别
jquery为预注册的资源名称,误将其当作普通文件名(缺少.js后缀)。 - ScriptManager/ScriptManagerProxy中引用jQuery时未指定正确的Assembly属性,导致资源解析失败。
- 项目存在缓存或编译残留,引发资源识别异常。
- AspNet.ScriptManager.jQuery包版本与jQuery 3.7.1不兼容。
可行解决方法
1. 验证web.config的脚本资源映射配置
打开项目根目录的web.config,检查<system.web>下是否存在正确的资源映射配置:
<system.web> <!-- 其他配置 --> <scripting> <scriptResourceMapping> <add name="jquery" path="Scripts/jquery-3.7.1.min.js" type="" /> </scriptResourceMapping> <resourceProviders> <add name="AspNet.ScriptManager.jQuery" type="Microsoft.Web.Handlers.ScriptResourceHandler, Microsoft.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </resourceProviders> </scripting> </system.web>
如果配置缺失,手动添加上述节点;若已存在,确认path指向的脚本文件路径与实际项目中的jQuery文件一致。
2. 修正ScriptReference的引用方式
在UserControl的ScriptManagerProxy中,明确指定Assembly属性,确保系统识别为预注册资源:
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server"> <Scripts> <asp:ScriptReference Name="jquery" Assembly="AspNet.ScriptManager.jQuery" /> </Scripts> </asp:ScriptManagerProxy>
若仍报错,可直接引用本地脚本文件替代资源名称:
<asp:ScriptReference Path="~/Scripts/jquery-3.7.1.min.js" />
3. 清理项目缓存并重新生成
- 删除项目根目录下的
bin和obj文件夹。 - 在Visual Studio中执行清理解决方案,再执行重新生成解决方案。
4. 检查并更新NuGet包兼容性
- 卸载并重新安装
AspNet.ScriptManager.jQuery包,确保安装过程中自动配置web.config。 - 确认安装的
AspNet.ScriptManager.jQuery版本支持jQuery 3.7.1,若版本过旧,更新至兼容.NET 4.7.2的最新版本。
5. 排查重复引用冲突
检查父页面的ScriptManager是否已引用jQuery,避免UserControl与父页面的重复引用导致解析异常。
内容的提问来源于stack exchange,提问作者Lorenzo Santarelli
相关产品推荐
相关产品推荐

