簡體   English   中英

子菜單在 .NET 6 Razor 頁面 Web App 中不起作用

[英]Submenu Not Working in .NET 6 Razor Page Web App

我正在測試一個簡單的 .NET 6 web 應用程序(僅剃須刀頁面,無 MVC),並遇到子菜單問題。

測試環境

操作系統:Windows 11

IDE:Visual Studio 2022

引導程序 V4

瀏覽器:Chrome

問題描述:

創建 web 應用程序后,我添加了一個名為“服務”的下拉菜單項,其中包含 3 個子菜單項(請參閱本文末尾的 _layout.cshtml 文件內容)。 每個子菜單都映射到一個 razor 頁面。

當我測試該應用程序時,下拉菜單根本不起作用,所有 razor 頁面在使用 url 進行測試時都工作正常。 以前,我能夠使用相同的方法在 .NET 5 MVC 應用程序中實現子菜單項。

問題:

  1. 子菜單的實現遵循引導網站上的示例。 我的 _layout.cshtml 文件有什么問題?

  2. _layout.cshtml 在 .NET 5 和 .NET 6 中的工作方式有區別嗎?

測試代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>@ViewData["Title"] - RazorSubmenu</title>

    <!-- Bootstrap CSS file -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css">
    <!-- Bootstrap Font Icon CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css">
    <!-- Font Awesome library -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">

    <link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
    <link rel="stylesheet" href="~/RazorSubmenu.styles.css" asp-append-version="true" />
</head>
<body>
    <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">RazorSubmenu</a>
                <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-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 justify-content-between">
                    <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  dropdown">
                            <a href="#" class="nav-link dropdown-toggle menu-item" data-toggle="dropdown">Services</a>
                            <div class="dropdown-menu">
                                <a class="dropdown-item" asp-area="" asp-page="/Services/Item1">Item 1</a>
                                <a class="dropdown-item" asp-area="" asp-page="/Services/Item3">Item 2</a>
                                <a class="dropdown-item" asp-area="" asp-page="/Services/Item3">Item 3</a>
                            </div>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
                        </li>
                    </ul>
                </div>
            </div>
        </nav>
    </header>
    <div class="container">
        <main role="main" class="pb-3">
            @RenderBody()
        </main>
    </div>

    <footer class="border-top footer text-muted">
        <div class="container">
            &copy; 2022 - RazorSubmenu - <a asp-area="" asp-page="/Privacy">Privacy</a>
        </div>
    </footer>

    <script src="~/lib/jquery/dist/jquery.min.js"></script>
    <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
    <script src="~/js/site.js" asp-append-version="true"></script>

    @await RenderSectionAsync("Scripts", required: false)
</body>
</html>

您通過本地文件添加 js 引用。 .NET 5默認的 Bootstrap 版本是Bootstrap v4.x ,但是.NET 6默認的版本是Bootstrap v5.x v5.x。

所以你需要下載 Bootstrap 版本 4.x 或者只使用 jsDelivr:

<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM