asp.net2.0母版页嵌套使用实例
嵌套母版页
母版页可以嵌套,可以创建让一个母版页引用另外一个页作为其母版页。利用嵌套的母版页可以创建组件化的母版页。例如,大型网站可能包含一个用于定义站点外观的总体母版页,然后,不同的网站内容合作伙伴又可以定义各自的子母版页,这些子母版页引用网站母版页,并相应定义合作伙伴的内容外观。嵌套母版页的示意图如图1所示。

图1嵌套母版页的示意图
注意:无论母版页如何嵌套构建页面,必须包含一个内容页,原因是客户端浏览器不能访问扩展名为.master的母版页。
与任何母版页一样,子母版页的扩展名为.master。它通常会包含一些Content控件,这些控件将映射到主母版页的ContentPlaceHolder控件上,因此,子母版页具有一定占位功能。就这方面而言,子母版页的布局方式与所有内容页类似。但是,子母版页有自己的ContentPlaceHolder控件,包含在Content控件中,可用于显示它所邦定的内容页提供的内容。
示例
创建一个简单的嵌套母版页
本示例将通过一个简单的嵌套母版页示例来加深读者对嵌套母版页的理解。程序开发步骤如下。
(1)新建一个网站,将其命名为16_01。
(2)在该网站的解决方案下,右键单击网站名称,在弹出的快捷菜单中选择“添加新项”,打开“添加新项…”对话框,首先添加两个母版页,分别命名为MainMasterPage(主母版页)和SubMasterPage(子母版页),然后再添加一个Web窗体,命名为Default.aspx,并将其作为SubMasterPage(子母版页)的内容页。
示例运行结果如图2所示。

图2 嵌套母版页示例图
图2所示的页面是由主母版页(MainMasterPage)、子母版页(SubMasterPage)和内容页(Default.aspx)组成的,主母版页包含的内容主要是页面的公共部分,主母版页嵌套子母版页,内容页绑定子母版页。
主母版页MainMasterPage.master源代码如下:
<%@ Master Language="C#" AutoEventWireup="True" CodeFile="MainMasterPage.master.cs" Inherits="MainMaster Page" %>
主母版页注意:主母版页的构建方法与普通母版页使用的方法一致。由于主母版页嵌套一个子母版页,因此必须在适当的位置设置一个ContentPlaceHolder控件实现占位功能。
子母版页SubMasterPage.master源代码如下:
<%@ Master Language="C#" AutoEventWireup="True" CodeFile="SubMasterPage.master.cs" Inherits="SubMasterPage" MasterPageFile ="~/MainMasterPage.master" %>