5.1 母版页概述

视频讲解

母版页的主要功能是为ASP.NET应用程序创建统一的用户界面和样式,实际上母版页是由两部分构成,即一个母版页和一个(或多个)内容页,将这些内容页与母版页合并,以将母版页的布局与内容页的内容组合在一起输出。

使用母版页,简化了以往重复设计每个Web页面的工作。母版页中承载了网站的统一内容、设计风格,减轻了网页设计人员的工作量,提高了工作效率。如果将母版页比喻为未签名的名片,那么在这张名片上签字后就代表着签名人的身份,这就相当于为母版页添加内容页后呈现的各种网页效果。

1. 母版页

母版页为具有扩展名.master(如MyMaster.master)的ASP.NET文件,它具有可以包括静态文本、HTML元素和服务器控件的预定义布局。母版页由特殊的@Master指令识别,该指令替换了用于普通.aspx页的@ Page指令。

2. 内容页

内容页与母版页关系紧密,内容页主要包含页面中的非公共内容。通过创建各个内容页来定义母版页的占位符控件的内容,这些内容页为绑定到特定母版页的ASP.NET页(.aspx文件以及可选的代码隐藏文件)。

注意

使用母版页,必须首先创建母版页,再创建内容页。

3. 母版页运行机制

在运行时,母版页按照下面的步骤处理。

(1)用户通过输入内容页的URL来请求某页。

(2)获取该页后,读取@Page指令。如果该指令引用一个母版页,则也读取该母版页。如果是第一次请求这两个页,则这两个页都要进行编译。

(3)将包含更新内容的母版页合并到内容页的控件树中。

(4)将各个Content控件的内容合并到母版页中相应的ContentPlaceHolder控件中。

(5)在浏览器中呈现得到的合并页。

从编程的角度来看,这两个页用作其各自控件的独立容器。内容页用作母版页的容器。但是,在内容页中可以从代码中引用公共母版页成员。

4. 母版页的优点

使用母版页,可以为ASP.NET应用程序页面创建一个通用的外观。开发人员可以利用母版页创建一个单页布局,然后将其应用到多个内容页中。母版页具有以下优点。

  • ☑ 使用母版页可以集中处理页的通用功能,以便只在一个位置上进行更新,在很大程度上提高了工作效率。
  • ☑ 使用母版页可以方便地创建一组公共控件和代码,并将其应用于网站中所有引用该母版页的网页。例如,可以在母版页中使用控件来创建一个应用于所有页的功能菜单。
  • ☑ 可以通过控制母版页中的占位符ContentPlaceHolder对网页进行布局。
  • ☑ 由内容页和母版页组成的对象模型,能够为应用程序提供一种高效、易用的实现方式,并且这种对象模型的执行效率比以前的处理方式有了很大的提高。

技巧

在母版页中不能直接使用主题(参考第7章的介绍),可以在pages元素中进行设置。例如,在网站的Web.config文件中配置pages元素的代码如下: