jQuery库的Asp.Net Web表单捆绑

时间:2019-05-07 12:43:09

标签: jquery asp.net bundle config

我有一个Web Forms应用程序,我在其中努力使jquery捆绑正常工作。

我已经尝试了以下代码的多种变体,并且还尝试使用NuGet软件包AspNet.ScriptManager.jQuery,但到目前为止没有任何效果。

问题在于该脚本似乎是在客户端下载的,但是它不起作用:

jquery bundle loaded 调用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捆绑的问题,或者我在这里出错了吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我通过启动一个新的Web Forms项目并将所有内容移到那里来“解决”该问题。这样就解决了问题。问题的一部分可能是原始项目是使用VS 2008创建的,而对于新项目,我使用了VS 2015。 我没有更改Web窗体模板,只是添加了NuGet包AspNet.ScriptManager.jQuery和AspNet.ScriptManager.jQuery.UI.Combined。现在,使用jQuery进行捆绑和缩小可以正常工作,但是缺点和更新jQuery仍然需要更多手动交互。