Asp.Net母版页和内容页运行机制

Asp.Net母版页和内容页运行机制
来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=96
从上面的讲解中可以看出,单独的母版页是不能被用户所访问的。没有内容页支持,母版页仅仅是一个页面模板,没有更多的实用价值。同样道理,单独的内容页没有母版页的支持,也不能够应用。这两者是不可分割的,只有同时正确创建和使用母版页及内容页,才能发挥它们的强大功能。为了便于读者理解,有必要讲解一下母版页与内容页的运行机制。
母版页和内容页的运行过程可以概括为以下5个步骤。
用户通过输入内容页的URL来请求某内容页。
获取内容页位置后,读取内容页@ Page指令。如果该指令引用一个母版页,则读取该母版页。
读取母版页后,编译母版页,将母版页载入内容页的控件树中。
将各个Content控件的内容合并到母版页中相应的ContentPlaceHolder控件中。
呈现得到结果页。
这一过程可由图7-9来表示。

(点击查看大图)图7-9 母版页和内容页运行机制
对访问者来说,他访问的URL路径就是内容页,但呈现的结果是母版页和内容页合并而成的一个完整页面。对开发者来说,只要做一个母版页,就可以让任意个内容页加载该母版页,而实现这一技术的关键是让母版页的ContentPlaceHolder控件与内容页的Content控件一一对应。
母版页与ASP.NET 1.1下用户控件的作用方式大致相同,即作为内容页的一个子级,并作为该页中的一个容器。
总结起来,母版页具有以下4个优点。
有利于站点的修改和维护,降低开发人员的工作强度。
由于公共内容被集中于母版页中,因此,只要修改母版页,就可以快速完成站点修改和维护工作,这在很大程度上提高了工作效率。
提供高效的内容整合能力。
在母版页中,允许添加文字、控件等Web元素,同时也可以为这些Web元素添加相应事件处理程序等。例如,只需要在母版页中添加一个服务器控件及其事件处理程序,站点内所有引用该母版页的网页,都将获得同样的应用效果。
有利于实现页面布局。
母版页中的ContentPlaceHolder控件起到了占位的作用,这在很大程度上有利于进行页面布局的工作。
提供一种便于利用的对象模型。
由内容页和母版页组成的对象模型能够为应用程序提供一种高效、易用的实现方式,并且这种对象模型的执行效率较以前的处理方式有了很大提高。

原文地址:http://blog.51cto.com/14036626/2314773

时间: 2024-10-08 21:01:47

Asp.Net母版页和内容页运行机制的相关文章

ASP.NET 母版页和内容页中的事件触发顺序

母版页和内容页触发事件的先后顺序,触发事件的规则一般是初始化事件是从最里边的控件到最外边的控件,其他事件则是从最外边控件到最里边控件. 下面是一个测试: 第一次触发的是母版页的Init事件. 第二次触发的是内容页的Init事件. 第三次触发的是内容页的Load事件 第四次触发的是母版页的Load事件 总结: 母版页与内容页触发事件的顺序: 1.母版页Init事件. 2.内容页Init事件. 3.内容页Load事件 4.母版页Load事件. 5.内容页PreRender事件. 6.母版页PreRe

ASP.NET 母版页和内容页的加载顺序

Master 模板页Content 内容页如果希望Master页面的数据传给Content页面,请Init如果希望Content页面的数据传给Master页面,请重载Load具体细节不多说了,看下面页面的加载顺序就明白原因(对于使用MasterPage方式做网站的是很有用的)母版页控件 Init 事件内容控件 Init 事件母版页 Init 事件内容页 Init 事件内容页 Load 事件母版页 Load 事件内容控件 Load 事件内容页 PreRender 事件母版页 PreRender 事

引用asp.net母版页后,母版页和内容页的页面事件执行顺序

如下,经测试得到的执行步骤: 第01步.内容页的 Page_PreInit第02步.母版页的 Page_Init第03步.内容页的 Page_Init第04步.内容页的 Page_InitComplete第05步.内容页的 Page_PreLoad第06步.内容页的 Page_Load第07步.母版页的 Page_Load第08步.母版页或内容页的 按钮点击等回发事件(Master或Content的Button事件不会同时触发)第09步.内容页的 Page_LoadComplete第10步.内容

asp.net C#母版页和内容页事件排版加载顺序生命周期

关于ASP页面Page_Load发生在事件之前而导致的问题已经喜闻乐见,对于问题的解释也很全面,但是如何解决问题则较少有人说明,我就再 简单说明一下解决方案.以下是内容页和母版页(如果有)的事件发生顺序: ContentPage.PreInit Master.Init ContentPage.Init ContentPage.InitComplite ContentPage.PreLoad ContentPage.Load Master.Load ContentPage.LoadComplete

CSS 使用母版页的内容页如何调用css和javascript

方案一: 把所有的css样式和javascript函数放到母版页的<head></head>中,我觉得这样做的弊端就是导致母版页的<head></head>区特别臃肿,同时如果原来两个频道页中包含同名的css声明或javascript函数,但却是不同样式或执行不同操作. 方案二: 在内容页的PageLoad事件中通过代码来指定本内容页的css文件. 代码如下 static public class ControlHelper {  static public

ASP.NET在母版页或内容页上获取控件ID

原本想给一个button添加一个confirm,不同的分数提示不同的信息(大于80合格,小于80不合格,提示是否提交),最开始用了button.Atribute.Add();但是它每次获取到的是label控件在刷新前的值,后来在网上看到了ViewState[]的使用,但是还是不行,没办法,只能用js: <script> function myconfirm() { if(document.getElementById('lbl').value>=80) {return confirm('

ASP.NET内容页中访问母版页中的对象

在ASP.NET2.0开始,提供了母版页的功能.母版页由一个母版页和多个内容页构成.母版页的主要功能是为ASP.NET应用程序中的页面创建相同的布局和界面风格.母版页的使用与普通页面类似,可以在其中放置文件或者图形.任何HTML控件和Web控件.后置代码等. 母版页仅仅是一个页面模板,单独的母版页是不能被用户所访问的.母版页和内容页有着严格的对应关系.母版页中包含多少个ContentPlaceHolder控件,那么内容页中也必须设置与其对应的Content控件. 回顾了母版页的概念后,我今天主要

asp.net 母版页使用详解--转

http://www.cnblogs.com/_zjl/archive/2011/06/12/2078992.html 母版页是VS2005中新引入的一个概念,它很好地实现界面设计的模块化,并且实现实现了代码的重用.它就像婚纱影楼中的婚纱模板,同一个婚纱模板可以给不同的新人用,只要把他们的照片贴在已有的婚纱模板就可以形成一张漂亮的婚纱照片,这样可以大大简化婚纱艺术照的设计复杂度.这里的母版页就像婚纱模板,而内容页面就像两位新人的照片.在VS2003中没有母版页,要实现这种设计重用的效果,我们只能

asp.net 母版页使用详解

母版页是VS2005中新引入的一个概念,它很好地实现界面设计的模块化,并且实现实现了代码的重用.它就像婚纱影楼中的婚纱模板,同一个婚纱模板可以给不同的新人用,只要把他们的照片贴在已有的婚纱模板就可以形成一张漂亮的婚纱照片,这样可以大大简化婚纱艺术照的设计复杂度.这里的母版页就像婚纱模板,而内容页面就像两位新人的照片.在VS2003中没有母版页,要实现这种设计重用的效果,我们只能用“用户控件”来实现,但用户控件没有一种可视化的组合外观,使用起来不太方便. 母版页(扩展名是.master)它的使用跟