【问题标题】:How I can modify Master Page to fix Bootstrap4 dropdown in asp.net ? (Uncaught TypeError: Bootstrap dropdown require Popper.js)如何修改母版页以修复 asp.net 中的 Bootstrap4 下拉菜单? (未捕获的类型错误:引导下拉菜单需要 Popper.js)
【发布时间】:2019-02-04 00:58:50
【问题描述】:

亲爱的,我在更新到 bootstrap 4 后尝试在我的项目中使用下拉菜单,它在更新之前工作但在更新之后没有工作,无论如何问题发生在 js 中,当我尝试点击下拉按钮时出现以下错误。

Uncaught TypeError: Bootstrap dropdown require Popper.js (https://popper.js.org)
    at Dropdown.toggle (bootstrap.js:1533)
    at HTMLButtonElement.<anonymous> (bootstrap.js:1690)
    at Function.each (jquery-3.0.0.js:359)
    at jQuery.fn.init.each (jquery-3.0.0.js:152)
    at jQuery.fn.init._jQueryInterface [as dropdown] (bootstrap.js:1675)
    at HTMLButtonElement.<anonymous> (bootstrap.js:1842)
    at HTMLDocument.dispatch (jquery-3.0.0.js:5087)
    at HTMLDocument.elemData.handle (jquery-3.0.0.js:4895)

我进行了很多搜索来解决这个问题,我尝试将来自 umd 的 popper.js 和来自链接的 popper.js 直接包含到母版页或同一页面上,但它不起作用

我也尝试更改 cssClass 但没有任何反应。

这是我的母版页(Visual Studio 默认添加)

<head runat="server">
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title><%: Page.Title %> - Arabian Food Supplies</title>

    <asp:PlaceHolder runat="server">
        <%: Scripts.Render("~/bundles/modernizr") %>
    </asp:PlaceHolder>
    <webopt:BundleReference runat="server" Path="~/Content/css" />
    <link href="Content/fontawesome-all.css" rel="stylesheet" />
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />

    <style type="text/css">
        .auto-style1 {
            font-size: small;
            color: #999999;
        }
    </style>


</head>
<body>
    <form runat="server">
        <asp:ScriptManager runat="server" EnablePageMethods="true" EnableCdn="True">
            <Scripts>
                <%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%>
                <%--Framework Scripts--%>
                <asp:ScriptReference Name="MsAjaxBundle" />
                <asp:ScriptReference Name="jquery" />
                <asp:ScriptReference Name="bootstrap" />
                <asp:ScriptReference Name="respond" />                
                <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
                <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
                <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
                <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
                <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
                <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
                <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
                <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
                <asp:ScriptReference Name="WebFormsBundle" />
                <%--Site Scripts--%>
            </Scripts>
        </asp:ScriptManager>

第一次尝试:

    <div class="btn-group" role="group">
        <button id="btnGroupDrop1" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action <span class="caret"></span></button>
        <ul class="dropdown-menu" aria-labelledby="btnGroupDrop1">
            <li>
                <asp:LinkButton ID="LinkButton2" runat="server">Solve</asp:LinkButton></li>
            <li>
                <asp:LinkButton ID="LinkButton3" runat="server">Abort</asp:LinkButton></li>
        </ul>
    </div>

第二次尝试

           <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
                Action<span class="caret"></span>
            </button>
            <ul class="dropdown-menu">
                <li><a href="#">Solve</a></li>
                <li><a href="#">Abort</a></li>
            </ul>
        </div>

【问题讨论】:

  • 没有重复,除了依赖 popper.js 的东西外,一切正常
  • “重复”表示其他人也有这个问题,并且收到的答案可能也会对您有所帮助。所以我们不需要把这些答案复制到这里。
  • 谢谢汉斯,但我尝试了上述解决方案,但它不适用于我。

标签: javascript asp.net webforms bootstrap-4 popper.js


【解决方案1】:

只需将 CDN 用于 bootstrap 4 或将 popper.js 添加到您的网页中

引导程序 4 的 cdn lin:<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

popper.js 的下载链接 https://github.com/FezVrasta/popper.js/releases

【讨论】:

  • 尝试显式添加
  • 或检查同一文件夹中重复的库之一
【解决方案2】:

我找到了解决办法:

首先在 Visual Studio 中转到 Tools &gt; NuGet Package Manager &gt; Manage NuGet Packages for Solution 然后点击 Installed 然后卸载 AspNet.ScriptManager.bootstrab 之后卸载Bootstrap

下一步:在 Site.Master 中的ScriptManager 标记中删除&lt;asp:ScriptReference Name="bootstrap" /&gt;

并将以下链接添加到您的母版页的 head 标记

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>

【讨论】:

    猜你喜欢
    • 2018-01-21
    • 2018-01-25
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    相关资源
    最近更新 更多