【发布时间】:2018-08-10 15:45:46
【问题描述】:
我正在尝试为使用母版页的非常大的 VS2008 ASP.NET 站点创建基于引导程序的菜单替换。
该站点有一个两级菜单,其中第一行包含主要区域,第二行包含内容,具体取决于所选的主菜单区域。一天后,我有了一个漂亮的 Bootstrap 布局,可以完美地显示和显示二级菜单内容。
使用 VS 2008(由于现有代码库无法更新), nav 和 flex 布局的东西 Bootstrap.bundle js/bootstrap css v4.1.3 和 JQuery 3.3.1
我需要帮助的地方是获取主菜单 Nav-Pills 以打开主题页面的 url(不起作用) - 并显示 nav-content 子菜单 div(如果存在)(有效)。我为下面的示例裁剪了一堆额外的菜单/内容。
单击 Home Nav-Pill 应显示 Default.aspx(已在加载时显示)。 首页 nav-Pill 点击截图:
单击 Nav-Search Pill 应显示子菜单并加载 Search.aspx 页面。当前加载子菜单(完成后将包含指向子区域页面的链接),但单击后仍显示同一页面而不是 search.aspx。 Search nav-Pill 点击截图:
到目前为止我的代码: MasterPage.master
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="CSS/bootstrap.css" rel="stylesheet" type="text/css" />
<link href="CSS/Site.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<div class="container-fluid" style="background-color:#eeeeee">
<nav class="mainnav nav nav-pills bg-light d-flex justify-content-md-between" role="tablist">
<a class=" d-flex nav-item" href="#">
LOGO HERE<%-- <img height="44px" src="Images/logo_color.gif" alt="Logo" />--%>
</a>
<ul class="nav align-self-end">
<li class="nav-item" style="height:25px">
<%--<a class="nav-link active mr-2" id="nav-home-tab" data-toggle="tab" href="#nav-blank" role="tab" aria-controls="blank" aria-expanded="true">Home</a>--%>
<asp:HyperLink class="nav-link active mr-2" id="nav-home-tab" NavigateUrl="~/Default.aspx" data-toggle="tab" data-target="#nav-blank" role="tab" aria-controls="blank" aria-expanded="true" runat="server">Home</asp:HyperLink>
</li>
<li class="nav-item">
<%--<a class="nav-link mr-2" id="nav-search-tab" data-toggle="tab" data-target="#nav-search" href="http://google.com" role="tab" aria-controls="search" aria-expanded="true">Search</a> --%>
<asp:HyperLink class="nav-link mr-2" id="nav-search-tab" data-toggle="tab" NavigateUrl="http://google.com" data-target="#nav-search" role="tab" aria-controls="search" aria-expanded="true" runat="server">Search</asp:HyperLink>
</li>
</ul>
<div class=" d-flex d-inline-block align-content-end justify-content-end">
<a href="#">Admin</a> | <a href="#">Help</a> | <a href="#">Contact Us</a> | <a href="#">Logout</a>
</div>
</nav>
<div class="tab-content col-sm-12" id="pills-tabContent">
<div class="tab-pane fade" id="nav-blank" role="tabpanel" aria-expanded="false">
</div>
<div class="tab-pane fade" id="nav-search" role="tabpanel" aria-labelledby="nav-search-tab" aria-expanded="false">
<nav class="nav nav-tabs" id="nav-sub-search" role="tablist">
<a class="nav-item nav-link mr-2" href="#">Advanced Search</a>
<a class="nav-item nav-link mr-2" href="#">Geographical Search</a>
</nav>
</div>
</div>
</div>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder id="MainContent" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js" type="text/javascript"></script>
<script src="Scripts/bootstrap.bundle.js" type="text/javascript"></script>
</body>
</html>
主页默认.aspx
<%@ Page Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="cMainContent" runat="server" ContentPlaceHolderID="MainContent">
<div class="container-fluid" style="background-color:#dddddd">
<br />
Home Page Content
</div>
</asp:Content>
Search.aspx 内容:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true" CodeFile="Search.aspx.cs" Inherits="Search" %>
<asp:Content ID="cSearchContent" runat="server" ContentPlaceHolderID="MainContent">
<div class="container-fluid" style="background-color:#dddddd">
<br />
Search Content
</div>
</asp:Content>
我更喜欢一种简单的全局方式,而不是向每个控件添加 javascript 事件。似乎我可以使用 href/NavigateUrl 作为页面名称和数据目标来打开子菜单? - 但不起作用。想法?
【问题讨论】:
标签: asp.net twitter-bootstrap visual-studio-2008 bootstrap-4 nav