You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core中Bootstrap 5导航栏下拉菜单无法点击问题求助

解决Bootstrap 5下拉菜单无法展开的问题

核心问题:重复引用Bootstrap JS文件

Bootstrap 5的bootstrap.bundle.js已经内置了Popper.js(下拉菜单功能必需的依赖库),同时加载bootstrap.bundle.js和bootstrap.js会导致JavaScript冲突,这是下拉菜单点击无响应的最直接原因。

修复步骤

  1. 清理重复的JS引用
    修改你的环境脚本块,只保留bootstrap.bundle.js即可:

    <environment include="Development">
        <link href="~/lib/twitter-bootstrap/css/bootstrap.css" rel="stylesheet" />
    
        <script src="~/lib/jquery/jquery.js"></script>
        <script src="~/lib/jquery-validate/jquery.validate.js"></script>
        <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
    
        <!-- 仅保留包含Popper的bundle版本 -->
        <script src="~/lib/twitter-bootstrap/js/bootstrap.bundle.js"></script>
    </environment>
    
  2. 验证脚本加载顺序与位置
    确保所有JS脚本放在页面底部(</body>标签之前),这样能保证DOM元素完全加载后再执行Bootstrap的初始化逻辑。你的当前顺序(jQuery在前,Bootstrap在后)是正确的,无需调整。

  3. 检查HTML结构与可访问性属性
    虽然你的下拉菜单结构基本正确,补充id和aria-labelledby属性可以增强可访问性,同时避免潜在的选择器冲突:

    <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" id="manageDropdown" data-bs-toggle="dropdown" aria-expanded="false">
            Manage
        </a>
        <ul class="dropdown-menu" aria-labelledby="manageDropdown">
            <li>
                <a class="dropdown-item" asp-controller="Administration" asp-action="ListUsers">Users</a>
            </li>
            <li>
                <a class="dropdown-item" asp-controller="Administration" asp-action="ListRoles">Roles</a>
            </li>
        </ul>
    </li>
    
  4. 排查浏览器控制台错误
    按F12打开浏览器开发者工具,切换到「控制台」标签:

    • 如果出现404错误,说明脚本文件路径不正确,核对Lib管理器安装的Bootstrap实际路径(部分版本路径为~/lib/bootstrap/而非~/lib/twitter-bootstrap/)。
    • 如果存在其他JS报错,根据错误信息定位冲突代码(比如自定义JS覆盖了Bootstrap的下拉事件)。

内容的提问来源于stack exchange,提问作者Samuel Mbah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 11:17:27