一个可以作为多个网页的页面布局,可以给多个网页定义通用行为和相同外观,以.master为扩展名的文件,称为母版页,它的存在减少的代码量,程序员可以不用在多个页面编写重复的代码,直接修改母版页即可
首先创建母版页:
建立的母版页中只包括公共的部分,因此母版页主要设置的就是页头及页尾的代码:
母版页的编辑完全跟aspx页面的编辑相同,包括<html><body><div>等web元素,而编辑母版页时,除ContentPlaceHolder 控件不要进行操作,其余地方可自由编辑.
创建内容页
选择母版页:窗口左侧是项目文件夹,右侧是文件夹中的母版页列表,选择相对应的点击确定
新创立页面代码
至此页面创立完成:内容页自由编辑 但不要有<html><body><title><head>
另外需要注意的是:
1:一个网站可以设置多种类型的母版页,以满足不同显示风格的需要;
2:已经建成的网页也可以重新嵌套进新的母版页;
打开已建成的网页,进入它的代码界面,在页面指示语句中增加与母版页的联系。为此需增加以下属性,其中"~/MasterPage.master"代表母版页名。
<%@Page Language="C#" MasterPageFile=" ~/MasterPage.master"
AutoEventWireup="…">
(2) 由于在母版页中已经包含有HTML、Head、Body、Form等标记,因此在网页中要删除所有这些标记,以避免重复。同样,类似于<H1></H1>的标记也要删除(div标记不要删除)。
(3) 在剩下内容的前后两端加上Content标记,并增加Content的ID属性,Runat属性以及ContentPlaceHolderID属性,后者的值(这里是ContentPlaceHolder1)应该与母版页中的网页容器相同。修改后的语句结构如下:
<asp:Content ID="bodyContent" ContentPlaceHolderID="ContentPlaceHolder1" Runat=Server>
<div>
…
</div>
</asp:Content>
就是说修改后的代码中除页面指示语句以外,所有语句都应放置在<asp:Content…>与</asp:Content>之间。
3: 母版页中有多处使用相对路径语法引用图像、样式表或页引用之类的URL资源,如果母版页和内容页在同一目录中,代码将正常运行;但是,如果内容页实际上在另一个位置,这个相对路径就是错误的。要解决这个问题,可以采取以下方法之一:
l 在母版页中使用绝对URL路径,例如<img src="/myapplication/p_w_picpaths/banner.gif" />。
l 在服务器控件中使用相对URL或与应用程序相关的URL来代替静态标记,例如<asp:Image ImageUrl="~/p_w_picpaths/banner.gif" runat="server" />。