从上面的讲解中可以看出,单独的母版页是不能被用户所访问的。没有内容页支持,母版页仅仅是一个页面模板,没有更多的实用价值。同样道理,单独的内容页没有母版页的支持,也不能够应用。这两者是不可分割的,只有同时正确创建和使用母版页及内容页,才能发挥它们的强大功能。为了便于读者理解,有必要讲解一下母版页与内容页的运行机制。
母版页和内容页的运行过程可以概括为以下5个步骤。
用户通过输入内容页的URL来请求某内容页。
获取内容页位置后,读取内容页@ Page指令。如果该指令引用一个母版页,则读取该母版页。
读取母版页后,编译母版页,将母版页载入内容页的控件树中。
将各个Content控件的内容合并到母版页中相应的ContentPlaceHolder控件中。
呈现得到结果页。
这一过程可由图7-9来表示。
图7-9 母版页和内容页运行机制
对访问者来说,他访问的URL路径就是内容页,但呈现的结果是母版页和内容页合并而成的一个完整页面。对开发者来说,只要做一个母版页,就可以让任意个内容页加载该母版页,而实现这一技术的关键是让母版页的ContentPlaceHolder控件与内容页的Content控件一一对应。
母版页与ASP.NET 1.1下用户控件的作用方式大致相同,即作为内容页的一个子级,并作为该页中的一个容器。
总结起来,母版页具有以下4个优点。
有利于站点的修改和维护,降低开发人员的工作强度。
由于公共内容被集中于母版页中,因此,只要修改母版页,就可以快速完成站点修改和维护工作,这在很大程度上提高了工作效率。
提供高效的内容整合能力。
在母版页中,允许添加文字、控件等Web元素,同时也可以为这些Web元素添加相应事件处理程序等。例如,只需要在母版页中添加一个服务器控件及其事件处理程序,站点内所有引用该母版页的网页,都将获得同样的应用效果。
有利于实现页面布局。
母版页中的ContentPlaceHolder控件起到了占位的作用,这在很大程度上有利于进行页面布局的工作。
提供一种便于利用的对象模型。
由内容页和母版页组成的对象模型能够为应用程序提供一种高效、易用的实现方式,并且这种对象模型的执行效率较以前的处理方式有了很大提高。
以上所述是小编给大家介绍的Asp.Net母版页和内容页运行机制,希望对大家有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnsendblog.com/index.php/?p=96