在同一项目但不同页面中加载多个 jquery 版本
Load multiple jquery version in the same project but not the same pages
我正在努力将 aspx 项目更新为 asp 网络 MVC。由于工作正在进行,一半的页面仍在 apsx 中。对于我的 aspx 页面,我需要加载 jquery-1-x-x,对于我的 asp 网页,我需要加载 jquery-3-x-x(我使用一些 jquery-3 功能在我的 mvc 页面上,但在我的 aspx 页面上使用此版本会引发错误,我无法处理)。
为此,我在 Portail_MasterPage
中加载了 jquery-1
<asp:ScriptReference Path="~/Scripts/jquery-1.10.2.js" />
为了在我的 asp 网页中添加 jquery-3,我使用了捆绑包。我的 BundleConfig.cs 中有这个:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-3.5.1.js"));
然后我使用了包含这一行的布局文件:
@Scripts.Render("~/bundles/jquery")
并且在每个 html 文件(asp 网页)中被调用:
@{
ViewBag.Title = "SaisieConges";
Layout = "~/Areas/MVC/Views/Shared/_Layout.cshtml";}
有了这个,我在我的 aspx 页中加载了 jquery-1-x-x,并且 jquery-1-x-x + jquery-3-x-x加载到我的 asp 网页中。但我最近发现在同一页面加载两个 jquery 版本会引发问题。
所以,我想知道是否有一种方法可以只加载一个特定的 jquery 版本,具体取决于我是否在 aspx 页面上。
感谢您的宝贵时间,对不起我的英语!
我找到了一种方法来做我想做的事,为他的整个项目(aspx + aspnet)保留一个全局母版页,但我不得不修改我的每个 aspx 文件(这并不重要,因为我打算更新后删除它们)。
我已将我的脚本引用放在 ContentPlaceHolder 中,如下所示:
<asp:ContentPlaceHolder id="ScriptManager" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager0" runat="server" EnableScriptGlobalization="true" EnablePartialRendering="true" CombineScripts="false" ScriptMode="Release">
<Scripts>
...
<asp:ScriptReference Path="~/Scripts/jquery-3.5.1.js" />
...
</Scripts>
</asp:ToolkitScriptManager>
</asp:ContentPlaceHolder>
因此,每个文件默认都有 jquery-3-5-1。要覆盖此版本(而不是添加第二个版本),您可以像这样修改您想要的 aspx 页面中的原始 ContentPlaceHolder :
<asp:Content ID="Content3" ContentPlaceHolderID="ScriptManager" Runat="Server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager0" runat="server" EnableScriptGlobalization="true" EnablePartialRendering="true" CombineScripts="false" ScriptMode="Release">
<Scripts>
...
<asp:ScriptReference Path="~/Scripts/jquery-1.10.2.js" />
...
</Scripts>
</asp:ToolkitScriptManager>
</asp:Content>
有了这个,我可以只加载所需的 jquery 版本。
我正在努力将 aspx 项目更新为 asp 网络 MVC。由于工作正在进行,一半的页面仍在 apsx 中。对于我的 aspx 页面,我需要加载 jquery-1-x-x,对于我的 asp 网页,我需要加载 jquery-3-x-x(我使用一些 jquery-3 功能在我的 mvc 页面上,但在我的 aspx 页面上使用此版本会引发错误,我无法处理)。
为此,我在 Portail_MasterPage
中加载了 jquery-1<asp:ScriptReference Path="~/Scripts/jquery-1.10.2.js" />
为了在我的 asp 网页中添加 jquery-3,我使用了捆绑包。我的 BundleConfig.cs 中有这个:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-3.5.1.js"));
然后我使用了包含这一行的布局文件:
@Scripts.Render("~/bundles/jquery")
并且在每个 html 文件(asp 网页)中被调用:
@{
ViewBag.Title = "SaisieConges";
Layout = "~/Areas/MVC/Views/Shared/_Layout.cshtml";}
有了这个,我在我的 aspx 页中加载了 jquery-1-x-x,并且 jquery-1-x-x + jquery-3-x-x加载到我的 asp 网页中。但我最近发现在同一页面加载两个 jquery 版本会引发问题。
所以,我想知道是否有一种方法可以只加载一个特定的 jquery 版本,具体取决于我是否在 aspx 页面上。
感谢您的宝贵时间,对不起我的英语!
我找到了一种方法来做我想做的事,为他的整个项目(aspx + aspnet)保留一个全局母版页,但我不得不修改我的每个 aspx 文件(这并不重要,因为我打算更新后删除它们)。
我已将我的脚本引用放在 ContentPlaceHolder 中,如下所示:
<asp:ContentPlaceHolder id="ScriptManager" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager0" runat="server" EnableScriptGlobalization="true" EnablePartialRendering="true" CombineScripts="false" ScriptMode="Release">
<Scripts>
...
<asp:ScriptReference Path="~/Scripts/jquery-3.5.1.js" />
...
</Scripts>
</asp:ToolkitScriptManager>
</asp:ContentPlaceHolder>
因此,每个文件默认都有 jquery-3-5-1。要覆盖此版本(而不是添加第二个版本),您可以像这样修改您想要的 aspx 页面中的原始 ContentPlaceHolder :
<asp:Content ID="Content3" ContentPlaceHolderID="ScriptManager" Runat="Server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager0" runat="server" EnableScriptGlobalization="true" EnablePartialRendering="true" CombineScripts="false" ScriptMode="Release">
<Scripts>
...
<asp:ScriptReference Path="~/Scripts/jquery-1.10.2.js" />
...
</Scripts>
</asp:ToolkitScriptManager>
</asp:Content>
有了这个,我可以只加载所需的 jquery 版本。