母版页
从ASP.NET2.0开始提供了母版页功能,它为提高工作效率、降低开发和维护强度,提供了有利支持。在ASP.NET中,可以将Web应用程序中的公用元素,例如,网站标志、广告条、导航条、版权声明等内容整合到模板页中。可以将母版页看作是页面模版,而且是一种具有多项高级功能的页面模版。
a.打开VS2010新建网站,选择web,NET Framework 3.5下的ASP.NET应用程序
添加新建项web中母版页
删除Default.aspx网页
b.常规母板页面建立成功如下:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebApplication1.Site1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server"> <div> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> </form> </body> </html>c.普通.aspx文件与母版页比较:
1.母版页扩展名为master,所以master为扩展名的文件都为母版页。客户端浏览器向服务器发出请求,要求访问.aspx文件,如 果是母版页则不能执行,客服端可以访问内容页,通过内容页对母版页的绑定,才能访问母版页
2.普通.aspx文件代码声明是<%@ Page%>,母版页文件代码头声明为<%@ Master %>在其它代码结构方面基本没有差异。
3母版页中可以包含一个或者多个ContentPlaceHolder控件,普通.aspx不包含该控件,ContentPlaceHolder起到占位符作用。 该标识的区域被内容页中特点代码代替。
二、内容页:
内容页主要包含页面中非公式内容,虽然文件扩展名为.aspx,但是其代码与普通.aspx文件差别很大。
a.创建内容页首先添加新建项web中使用 母版页的Web窗体。
b.常见内容代码结构如下:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> </asp:Content>c.内容页与普通.aspx文件比较
1.代码头声明
内容页的代码头相比较普通.aspx文件增加了MasterPageFile和Title设置
MasterPageFile:用于该内容页所绑定的母版页路径
属性Title:设置页面title属性值
2.Content控件
在内容页中包含一个或多个Content控件,页面中所有非公共内容都必须与ContentPlaceHolder控件相连接。(母版页中ContentPlaceHolder控件的ID属性必须与内容页中Content控件的ContentPlaceHolderID属性绑定)
注意:ContentPlaceHolder对于页面内容中的非公共部分,只需要在母版页中使用一个或者多个ContentPlaceHolder控件来占位即可。ContentPlaceHolder控件主要用于母板页中,作为代替非公共部分的占位符出现,而具体内容则被放置在内容页中。即在母版页中公共部分代码写在ContentPlaceHolder占位符外面。内容页中的非公共代码写在Content里。