从上面的讲解中可以看出,单独的母版页是不能被用户所访问的。没有内容页支持,母版页仅仅是一个页面模板,没有更多的实用价值。同样道理,单独的内容页没有母版页的支持,也不能够应用。这两者是不可分割的,只有同时正确创建和使用母版页及内容页,才能发挥它们的强大功能。为了便于读者理解,有必要讲解一下母版页与内容页的运行机制。
母版页和内容页的运行过程可以概括为以下5个步骤。
用户通过输入内容页的URL来请求某内容页。
获取内容页位置后,读取内容页@ Page指令。如果该指令引用一个母版页,则读取该母版页。
读取母版页后,编译母版页,将母版页载入内容页的控件树中。
将各个Content控件的内容合并到母版页中相应的ContentPlaceHolder控件中。
呈现得到结果页。
这一过程可由图7-9来表示。
图7-9 母版页和内容页运行机制
对访问者来说,他访问的URL路径就是内容页,但呈现的结果是母版页和内容页合并而成的一个完整页面。对开发者来说,只要做一个母版页,就可以让任意个内容页加载该母版页,而实现这一技术的关键是让母版页的ContentPlaceHolder控件与内容页的Content控件一一对应。
母版页与ASP.NET 1.1下用户控件的作用方式大致相同,即作为内容页的一个子级,并作为该页中的一个容器。
总结起来,母版页具有以下4个优点。
有利于站点的修改和维护,降低开发人员的工作强度。
由于公共内容被集中于母版页中,因此,只要修改母版页,就可以快速完成站点修改和维护工作,这在很大程度上提高了工作效率。
提供高效的内容整合能力。
在母版页中,允许添加文字、控件等Web元素,同时也可以为这些Web元素添加相应事件处理程序等。例如,只需要在母版页中添加一个服务器控件及其事件处理程序,站点内所有引用该母版页的网页,都将获得同样的应用效果。
有利于实现页面布局。
母版页中的ContentPlaceHolder控件起到了占位的作用,这在很大程度上有利于进行页面布局的工作。
提供一种便于利用的对象模型。
由内容页和母版页组成的对象模型能够为应用程序提供一种高效、易用的实现方式,并且这种对象模型的执行效率较以前的处理方式有了很大提高。
以上所述是小编给大家介绍的Asp.Net母版页和内容页运行机制,希望对大家有所帮助,也希望大家多多支持。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。