在 ASP.NET MVC 显示问题中更改引导主题

Posted

技术标签:

【中文标题】在 ASP.NET MVC 显示问题中更改引导主题【英文标题】:Changing Bootstrap Themes in ASP.NET MVC display issues 【发布时间】:2018-07-12 13:00:32 【问题描述】:

我有一个 MVC 项目,我已将默认 Bootstrap 主题更改为 Bootswatch - Cosmos,但它为我提供了导航栏的附加结果。

Header display issue image

最初我运行的是 Bootstrap 3.0,并使用 Bootswatch 3.0 来确保没有版本冲突。

我已采取以下步骤:

    将 cosmos-boostrap.css 和 cosmos-boostrap.min.css 添加到内容文件夹

    引用我的 BundleConfig.cs 中的 css 文件:

       bundles.Add(new StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/cosmos-bootstrap.css",
                  "~/Content/site.css"));
    

    查看我的 _Layout.cshtml 以获取样式参考:

    @Styles.Render("~/Content/css")
    

    将 Bootstrap 升级到 v4 并尝试了 Cosmos v4,但仍然得到相同的结果。

这似乎只是导航栏的问题,因为其他 Cosmos 字体和按钮似乎显示正常。我还测试了其他一些 Bootstrap 主题,对于导航栏的结果相同。

任何帮助将不胜感激。

编辑:导航栏的 HTML 如下:

<body>
<div class="navbar navbar-inverse navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            @Html.ActionLink("Portal", "Index", "Home", new  area = "" , new  @class = "navbar-brand" )
        </div>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li>@Html.ActionLink("Home", "Index", "Home")</li>
                <li>@Html.ActionLink("About", "About", "Home")</li>
                <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
            </ul>
            @Html.Partial("_LoginPartial")
        </div>
    </div>
</div>
<div class="container body-content">
    @RenderBody()
    <hr />
    <footer>
        <p>&copy; @DateTime.Now.Year - TEST IT SOLUTIONS</p>
    </footer>
</div>

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)

【问题讨论】:

【参考方案1】:

Bootstrap 4 几乎完全重写了 Bootstrap 3,因此,两个版本完全彼此不兼容

因此,为 Bootstrap 3 设计的 Bootstrap 主题必须手动迁移到 Bootstrap 4。因为这两个版本非常不同,所以没有简单或自动化的方法可以做到这一点。任何自动化迁移的尝试都会留下大量需要手动调整的内容。

附:如果您只想修复标题,请在您的问题中发布 complete code snippet(HTML 输出),即在此处发布您当前的代码。

编辑:

根据您现在发布的代码 sn-p,有一点很清楚:您的主题不是 Bootstrap 4 主题,并且与 Bootstrap 4 不兼容。您所拥有的是 Bootstrap 3 代码。

这是特定导航栏的 Bootstrap 4 代码的样子(您需要根据需要为 ASP.NET 代码调整它;单击下面的“运行代码 sn-p”按钮以查看它的实际效果):

<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://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

<nav class="navbar navbar-expand-lg navbar-dark bg-dark sticky-top">
    <div class="container">
        <a class="navbar-brand" href="#">BrandName</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>

        <div class="collapse navbar-collapse" id="navbarSupportedContent">
            <ul class="navbar-nav">
                <li class="nav-item active">
                    <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">About</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Contact</a>
                </li>
                <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>
                <li class="nav-item">
                    <a class="nav-link disabled" href="#">Disabled</a>
                </li>
            </ul>
        </div>
    </div>
</nav>
<!-- End of navbar -->

<div style="padding:1000px 0;">hi</div>

【讨论】:

谢谢。升级到 BS4 后,我使用了全新的 BS4 兼容主题,所以我认为这不是问题。将编辑我的帖子以显示 HTML。 不,那里的代码绝对不是 Bootstrap 4。它是 Bootstrap 3。谁把它作为“B4 兼容主题”出售,试图欺骗你。 刚刚使用导航栏的 Bootstrap 4 代码更新了我的答案。您需要根据需要针对 ASP.NET 进行调整,但我的代码 sn-p 为您提供了一个有效的 Bootstrap 4 导航栏,其属性/功能与您当前的 Bootstrap 3 导航栏相同。

以上是关于在 ASP.NET MVC 显示问题中更改引导主题的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Web 应用程序无法使用自定义引导程序正确显示内容

已发布的 ASP.NET MVC 应用程序中未显示引导图标

无法显示带有 asp.net mvc url.action 链接的引导对话框

集成引导模板的 ASP .Net MVC Web 应用程序

ASP.NET MVC 验证不适用于引导模式

ASP.NET-MVC5 - 为啥 Bootstrap v4 主题不能正确显示组件?