【问题标题】:Bootstrap drowpdown not working when placed in .net masterpage放置在.net母版页中时,引导下拉菜单不起作用
【发布时间】:2013-11-21 14:59:03
【问题描述】:

我在 .net 母版页中放置了一个引导导航栏。此代码在没有母版页的另一个页面上运行完美,但如果在母版页上,它不起作用。

    <link href="../plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
    <link href="../plugins/bootstrap/css/bootstrap-theme.min.css" rel="stylesheet" type="text/css" />
    <link href="../plugins/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
    <link href="../plugins/pnotify/css/jquery.pnotify.default.icons.css" rel="stylesheet"
        type="text/css" />

    <script src="../plugins/jquery/jquery-1.10.2.min.js" type="text/javascript"></script>
    <script src="../plugins/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.1.15/jquery.form-validator.min.js"
        type="text/javascript"></script>
    <script src="../plugins/notify/notify.min.js" type="text/javascript"></script>

    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <!-- Fixed navbar -->
        <div class="navbar navbar-default navbar-fixed-top" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand" href="#">XX</a>
                </div>
                <div class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <li class="active"><a href="#">Home</a></li>
                        <li><a href="#">About</a></li>
                        <li><a href="#">FAQ</a></li>
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
                            <ul class="dropdown-menu">
                              <li><a href="#">Action</a></li>
                              <li><a href="#">Another action</a></li>
                              <li><a href="#">Something else here</a></li>
                              <li class="divider"></li>
                              <li><a href="#">Separated link</a></li>
                              <li class="divider"></li>
                              <li><a href="#">One more separated link</a></li>
                            </ul>
                          </li>
                    </ul>
                    <ul class="nav navbar-nav navbar-right">
                        <li><a href="#">Default</a></li>
                        <li><a href="#">Log Out</a></li>
                    </ul>
                </div>
                <!--/.nav-collapse -->
            </div>
        </div>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    </form>

有人吗?快把我的电脑扔出窗外了。

/鲍勃

【问题讨论】:

  • 它对我有用。你的脚本加载正确吗?
  • 没有收到任何警告,其他一切似乎都正常。您只是将其剪切并粘贴到母版页中?它奏效了吗?
  • 我没有完全相同的站点布局,但下拉菜单在使用 Bootstrap CDN 的母版页中工作。我怀疑这是脚本文件的路径有问题,这将相对于内容页面而不是母版页面来解决。
  • 理查德,你是对的。我更改为 CDN,它运行良好。当我更仔细地查看时,来自 MasterPage 的脚本 url 不正确。意思是,MasterPage 将路径呈现为 ../js/jquery.js 例如,但母版页子需要它是 ../../js/juery.js,例如。你知道我该如何解决吗?
  • 最简单的选择可能是将ScriptManager 添加到您的母版页,并使用ScriptReference 替换您的&lt;script&gt; 标记。这样,您就可以为您的脚本文件指定应用相对 URL。

标签: c# jquery twitter-bootstrap


【解决方案1】:

如果你检查你的浏览器检查工具,我想你可能会遇到这个错误:

Error("Bootstrap requires jQuery")

Bootstrap.js 有一个 jQuery 依赖项。所以你需要在 bootstrap.js 之前加载 jQuery 第一个脚本。

这应该是顺序。 &lt;/body&gt; 选项卡的正上方。该路径应该相对于您放置文件的位置。 注意:使用 /parent_folder/..path_to_your_files

<script src="/Scripts/jquery-1.9.0.js" type="text/javascript"></script>
<script src="/Scripts/bootstrap.js" type="text/javascript"></script>

希望这会有所帮助。 :-)

【讨论】:

    猜你喜欢
    • 2016-01-13
    • 2013-07-31
    • 1970-01-01
    • 2016-04-12
    • 2013-04-07
    相关资源
    最近更新 更多