您现在的位置是:首页 > 开发教程

开发教程

ASP.NET 2.0入门经典(第4版)-Maseter与站点地图

2020-11-14 10:24:24 开发教程 admin
2.3.1多层次的Master页面虽然这种技术没有用于WroxUnited站点,但是页面可以继承多层次的Master页面。这个功能提供了一种显示多层次结构标准内容的方式。例如,一个名为Publication.aspx的Content页面可以
2.3.1多层次的Master页面
虽然这种技术没有用于WroxUnited站点,但是页面可以继承多层次的Master页面。这个功能提供了一种显示多层次结构标准内容的方式。例如,一个名为Publication.aspx的Content页面可以指定它的Master页面为Research.master,而Research.master又指定它的Master页面为Corporate.master。最终显示的结果是,Publication.aspx包含在Research.master内,而Research.master页面又包含在Corporate.master内。这样做的一个问题是用于显示内容的空间将随着层次结构的增加而不断减少。VWD没有包含用于创建多层次Master的自动工具。事实上,如果包含了多个层次,那么只能在Source视图中打开页面。

要创建带有多层次Master的页面,必须在中间层页面中包含标记同时指明该页面的Master页面(上一个层)和内容占位符(为下一层页面提供)。回忆一下,在Master页面的第一行代码中必须包含<%@master…>,而在低一层的页面或者Content页面的第一行代码中必须包含<%@pagemasterPageFile=%>。如果是中间页面,它即是Content又是Master,那么第一行的标记必须以<%@master…开始,同时包含…masterPageFile=%>。

Master页面包含了一个<asp:ContentPlaceHolder>标记,而Content页面则包含了一个<asp:content>标记。如果是中间层页面,那么它必须包含一个<asp:content>标记,该标记与Master页面中的<asp:ContentPlaceHolder>标记相关联。然后在这个标记中有一个<asp:ContentPlaceHolder>标记,该标记用于包含下一层的页面。

下面的示例演示了一个CorporateMaster页面、一个ResearchdepartmentMaster页面和最终包含具体内容的Publication.aspx页面。下面的代码显示了Corporate页面。注意它的内容占位符是在阴影部分定义的:
<%@MasterLanguage="VB"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>CorporateMaster</title>
</head>
<body>
CorporationName
<formid="form1"runat="server">
<span>
<asp:contentplaceholderid="ContentPlaceHolderCorporate"runat="server">
</asp:contentplaceholder>
</span>
</form>
</body>
</html>