我有一个Web Forms应用程序,我在其中努力使jquery捆绑正常工作。
我已经尝试了以下代码的多种变体,并且还尝试使用NuGet软件包AspNet.ScriptManager.jQuery,但到目前为止没有任何效果。
问题在于该脚本似乎是在客户端下载的,但是它不起作用:
调用jquery函数时,出现典型的“ TypeError: $(...)。不是函数”-错误。
我在BundleConfig.cs中的代码:
BundleTable.EnableOptimizations = false;
bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/jquery-3.3.1.js"));
ScriptManager.ScriptResourceMapping.AddDefinition("jquery",
new ScriptResourceDefinition
{
Path = "~/bundles/jquery",
DebugPath = "~/bundles/jquery",
});
在Site.Master中:
<asp:ScriptManager runat="server" EnablePageMethods="True">
<Scripts>
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Path="~/Scripts/bootstrap.min.js" />
<asp:ScriptReference Name="jquery.ui.combined" />
<asp:ScriptReference Name="respond" />
<asp:ScriptReference Path="~/Scripts/GlobalFunctions5.js" />
<asp:ScriptReference Path="~/Scripts/AjaxControlToolkit/Bundle" />
<%--Site Scripts--%>
</Scripts>
</asp:ScriptManager>
最终,我希望能够在不更改BundleConfig的情况下升级jQuery NuGet包,因此我也尝试了此操作(它甚至没有在客户端加载该Bunde):
bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/jquery-{version}.js"));
是否有可能会影响jQuery捆绑的问题,或者我在这里出错了吗?
感谢您的帮助!
答案 0 :(得分:0)
我通过启动一个新的Web Forms项目并将所有内容移到那里来“解决”该问题。这样就解决了问题。问题的一部分可能是原始项目是使用VS 2008创建的,而对于新项目,我使用了VS 2015。 我没有更改Web窗体模板,只是添加了NuGet包AspNet.ScriptManager.jQuery和AspNet.ScriptManager.jQuery.UI.Combined。现在,使用jQuery进行捆绑和缩小可以正常工作,但是缺点和更新jQuery仍然需要更多手动交互。