【发布时间】:2014-07-19 00:18:28
【问题描述】:
我的应用程序现在有几个页面,我将开始使用母版页来减少 HTML 中的代码量。所以我创建了一个“使用母版页的 Web 表单”,目前我在其中创建了一个菜单栏:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="PersonnelMasterPage.master.cs" Inherits="bSimplex.Personnel.PersonnelMasterPage" %>
<asp:ContentPlaceHolder ID="cnt_MenuBar" runat="server">
<div class="bsimplex header-bar left">
<div class="header-context clearfix header-label">
<asp:Image ID="bsimplexPTLogo" runat="server" CssClass="small-logo" ImageUrl="~/Images/tracker logoOnly.png" />
<label class="configurationlbl">Personnel Tracker</label>
</div>
<div class="menubarbest">
<ul id="nav">
<li class="current"><a href="bPersonnelTrackerDashboard.aspx" >Home</a></li>
<li><a href="#">Manager</a>
<ul>
<li><a href="#">Rota</a></li>
<li><a href="#">Holiday Requests</a></li>
</ul>
</li>
<li><a href="#">Absences</a>
<ul>
<li><a href="bSicknessForm.aspx">Sickness</a></li>
<li><a href="bLatenessForm.aspx">Lateness</a></li>
<li><a href="bMedicalLeaveForm.aspx">Medical Appointment</a></li>
<li><a href="OtherMedical.aspx">Other</a></li>
</ul>
</li>
<li><a href="#">Reports</a>
<ul>
<li><a href="#">Attendance Record</a></li>
<li><a href="#">Rota</a></li>
</ul>
</li>
<li><a href="Admin/Administration.aspx">Admin</a></li>
</div>
</div>
</asp:ContentPlaceHolder>
然后在我刚刚创建的 Web 表单上,我添加了这个 Content Holder:
<%@ Page Title="" Language="C#" MasterPageFile="~/Personnel/PersonnelMasterPage.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="bSimplex.WebForm1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cnt_MenuBar" runat="server">
</asp:Content>
首先,我的页面上没有显示任何内容,我想知道我做错了什么吗?
其次,我有这个菜单栏的 CSS 样式,这些样式会保持不变还是因为我已进入母版页,它们是否需要更改?
【问题讨论】:
-
如果你想在所有页面中显示菜单栏,你为什么要在子页面中再次覆盖。不要在子页面中包含“cnt_MenuBar”的任何内容控件
-
@malkam 我在哪里覆盖它?我对调用母版页菜单栏感到困惑。
-
子页面中的
将设置为空白。在 Master Page 中再声明一个 ContentPlaceHolder 以呈现 html 的其余部分,保留 cnt_menubar 以在所有页面中显示 Menu。
标签: html css asp.net master-pages master