ASP.NET 2.0入门经典2(16)
发布时间:2021-06-06
发布时间:2021-06-06
ASP.NET入门经典
创建页面时,首先要在Solution Explorer中选择页面的父文件夹。在很多情况下,该文件夹是Web站点的根目录C:\BegASPNET2\WroxUnited,但有时可能是一个层次结构较低的文件夹,例如FanClub.aspx就存放在文件夹C:\BegASPNET2\WroxUnited\FanClub中。
Content页面是如何获得与site.master页面相互协作的3个功能的呢?起始标记<%@Page…>必须包含MasterPageFile属性。由于可能将这些文件移动到不同的文件夹结构中,可以使用波浪号(~)引用Master页面的位置,这个符号表明Master页面位于根目录下。其次,Content页面的内容包含在服务器端控件asp:Content中,这个控件的ContentPlaceHolderID属性指示将Content页面的内容插入到Master页面的什么位置。再次,因为HTML和XMLNS标记由Master页面引入,所以在Content页面中省略了这些标记。
Master和Content页面机制还有其他一些功能,虽然这些功能在Wrox United示例站点中没有实现,但是多层次的Master页面可以用于一个最终页面。根据发出请求的浏览器不同,可以使用不同的Master页面。一个Master页面可以支持多个内容占位符。
2.3.1 多层次的Master页面
虽然这种技术没有用于Wrox United站点,但是页面可以继承多层次的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页面的第一行代码中必须包含<%@ page masterPageFile=%>。如果是中间页面,它即是Content又是Master,那么第一行的标记必须以<%@master…开始,同时包含…masterPageFile=%>。
Master页面包含了一个<asp:ContentPlaceHolder>标记,而Content页面则包含了一个<asp:content>标记。如果是中间层页面,那么它必须包含一个<asp:content>标记,该标记与Master页面中的<asp:ContentPlaceHolder>标记相关联。然后在这个标记中有一个<asp:ContentPlaceHolder>标记,该标记用于包含下一层的页面。
下面的示例演示了一个Corporate Master页面、一个Research department Master页面和最终包含具体内容的Publication.aspx页面。下面的代码显示了Corporate页面。注意它的内容占位符是在阴影部分定义的:
<%@ Master Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
上一篇:初三语文第一学期期末试卷(二)
下一篇:第四章 市场营销环境