在 ASP.Net Core Web 应用程序(引导程序)中向导航栏添加下拉菜单

Posted

技术标签:

【中文标题】在 ASP.Net Core Web 应用程序(引导程序)中向导航栏添加下拉菜单【英文标题】:Adding a Dropdown menu to the NavBar in an ASP.Net Core Web App (bootstrap) 【发布时间】:2021-11-22 17:15:38 【问题描述】:

在 Visual Studio 中,我创建了一个新的 ASP.Net Core Web App

然后我添加一个下拉菜单(根据 Bootstrap 文档) https://getbootstrap.com/docs/5.1/components/navbar/

html 代码的标头部分如下所示:

<header>
    <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
        <div class="container">
            <a class="navbar-brand" asp-area="" asp-page="/Index">WebApplication1</a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
                    aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
                <ul class="navbar-nav flex-grow-1">
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
                    </li>
                    <li class="nav-item dropdown">
                      <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                        Dropdown
                      </a>
                      <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
                        <li><a class="dropdown-item" href="#">Action</a></li>
                        <li><a class="dropdown-item" href="#">Another action</a></li>
                        <li><hr class="dropdown-divider"></li>
                        <li><a class="dropdown-item" href="#">Something else here</a></li>
                      </ul>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
</header>

但下拉菜单不起作用。当我单击它时,不会出现下拉菜单: https://i.stack.imgur.com/szrE4.png

【问题讨论】:

【参考方案1】:

确保你的Bootstrap版本是v5.1,你可以在你的项目_Layout.cshtml添加如下css和js文件:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.1.1/css/bootstrap.min.css" integrity="sha512-6KY5s6UI5J7SVYuZB4S/CZMyPylqyyNZco376NM2Z8Sb8OxEdp02e1jkKk/wZxIEmjQ6DRCEBhni+gpr9c4tvA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.1.1/js/bootstrap.min.js" integrity="sha512-ewfXo9Gq53e1q1+WDTjaHAGZ8UvCWq0eXONhwDuIoaH8xz2r96uoAYaQCm1oQhnBfRXrvJztNXFsTloJfgbL5Q==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

对于 Bootstrap v4.x,您需要将代码更改为:

<li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            Dropdown
        </a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
            <a class="dropdown-item" href="#">Action</a>
            <a class="dropdown-item" href="#">Another action</a>
            <div class="dropdown-divider"></div>
            <a class="dropdown-item" href="#">Something else here</a>
        </div>
</li>

【讨论】:

Rena,您的 v4.x 答案运行良好。我正在使用 Visual Studio 2019,其默认的 DotNet Core 应用似乎使用 v4.3.1:(根据 bootstrap.js)Bootstrap v4.3.1

以上是关于在 ASP.Net Core Web 应用程序(引导程序)中向导航栏添加下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 入门教程 1使用ASP.NET Core 构建第一个Web应用

ASP.NET Core Web 应用程序系列- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)

如何在 ASP.NET (Core 2) Web 应用程序中访问来自 AWS 的认证?

net core体系-web应用程序7asp.net core日志组件

将文件从 ASP.NET Core Web api 发布到另一个 ASP.NET Core Web api

ASP.NET Core Web API