从上面的解释可以看出,用户无法访问单个母版页。没有内容页面的支持,母版页只是一个页面模板,没有更多的实用价值。同样,没有母版页的支持,单个内容页也无法应用。两者密不可分,只有同时正确创建和使用母版页和内容页,才能发挥其强大的功能。为了方便读者理解,有必要说明母版页和内容页的运行机制。
母版页和内容页的运行过程可以概括为以下五个步骤。
用户通过输入内容页面的网址来请求内容页面。
获取内容页位置后,读取内容页@ Page指令。如果指令引用母版页,则读取母版页。
阅读母版页后,编译母版页并将其加载到内容页的控件树中。
将每个内容控件的内容合并到母版页中相应的内容占位符控件中。
将显示结果页面。
这个过程可以用图7-9来表示。
图7-9母版页和内容页的运行机制
对于访问者来说,他访问的URL路径是内容页,但呈现的结果是由母版页和内容页合并而成的完整页面。对于开发人员来说,只要他们制作了母版页,任何内容页面都可以加载母版页。实现该技术的关键是使母版页的ContentPlaceHolder控件与内容页的Content控件一一对应。
母版页的工作方式与ASP.NET 1.1下的用户控件相同,即作为内容页的子级和页面中的容器。
综上所述,母版页有以下四个优点。
有利于网站的修改和维护,降低开发者的工作强度。
由于公共内容集中在母版页,只要修改母版页,就可以快速完成网站修改和维护,大大提高了工作效率。
提供高效的内容集成功能。
在母版页中,可以添加文本和控件等Web元素,还可以为这些Web元素添加相应的事件处理程序。例如,您只需要向母版页添加一个服务器控件及其事件处理程序,网站中引用该母版页的所有网页都将获得相同的应用效果。
有利于实现页面布局。
母版页中的ContentPlaceHolder控件起到占位符的作用,很大程度上有利于页面的布局。
提供一个使用方便的对象模型。
由内容页和母版页组成的对象模型可以为应用程序提供一种高效、易用的实现方法,并且这种对象模型的执行效率比以前的处理方法有了很大的提高。
以上是边肖介绍的Asp.Net母版页和内容页的运行机制。希望对大家有帮助,支持我们。