我正在将一个aspx项目更新为asp net MVC。由于工作正在进行中,一半的页面仍然在apsx中。对于我的aspx页面,我需要加载jquery-1-x-x,对于我的asp net页面,我需要加载jquery-3-x-x (我在mvc页面上使用了一些jquery-3功能,但是在我的aspx页面上使用这个版本会引起我无法处理的错误)。
为此,我在Portail_MasterPage中加载了jquery-1
<asp:ScriptReference Path="~/Scripts/jquery-1.10.2.js" />为了在我的asp net页面中添加jquery-3,我使用了bundles。我的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,并在asp net页面中加载了jquery-1-x-x + jquery-3-x-x。但我最近发现,在同一个页面中加载两个jquery版本会引发问题。
所以,我想知道的是,有没有办法根据我是否在aspx页面上加载一个特定的jquery版本。
感谢您的宝贵时间,并为我的英语道歉!
发布于 2021-02-11 23:13:11
我找到了一种做我想做的事情的方法,为整个项目(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版本。
https://stackoverflow.com/questions/66139705
复制相似问题