我们浏览生活中的主流平台的时候会发现它们每个页面几乎都是一个风格的,比如我们熟悉的B站:
网站的布局通常是统一的,上面是Logo、菜单条、下面是公司地址、版权声明等。如果每个页面都重复做这些功能的话工作量太大,一旦修改那么每个页面都要修改,那么如何解决这一问题?Asp.Net中一般用母版(MasterPage)技术来解决这个问题。
母版页允许为web 应用程序中的所有页面(或页面组)创建一致的外观和行为。
母版页为其他页面提供模版,带有共享的布局和功能。母版页为内容定义了可被内容页覆盖的占位符。输出结果是母版页和内容页的组合。
内容页包含您想要显示的内容。
当用户请求内容页时,ASP.NET 会对页面进行合并以生成结合了母版页布局和内容页内容的输出。
创建母版页示例:
一、 我们首先来创建一个母版页,右键添加新项,选择Web Forms母版页,起名test.master:
二、 我们发现母版页是无法直接浏览的,必须嵌入相应的内容页后才可以浏览,右键—添加—新建项—选择包含母版页的Web窗体,在弹出的选择框中,选择我们刚创建好的test.master:
三、 在内容页中对预留位置的占位部分进行内容填充:
四、 运行后看效果:
五、 查看网页源代码:
六、 画图再次分析母版页和内容页的关系:
小结:MasterPage是这样一种技术,把页面布局画好,在变化的内容部分“留空”,留空的部分由子页面填充内容,这样子页面只要填空就行,不用重复设计页面结构,一旦要修改页面结构修改母版页就可以,这样所有页面都会变化。母版页“挖坑”,具体页面“填坑”。母版页、具体页面中几乎可以使用所有的普通WebForm页面能够使用的技术。
母版页的特点:
- 有利于站点修改和维护,降低开发人员的工作强度
- 提供高效的内容整合能力
- 有利于实现页面布局
- 提供一种便于利用的对象模型
母版页和用户控件有什么区别?
母版页是提取多个页面的外围公共部分,开发内容页时是嵌入于母版页中间的;
而用户控件是提取多个页面容中间任意一个位置的公共部分,开发时是把用户控件嵌入在开发的页面中的。