母版页 - ASP.net 2.0 方式






1.26/5 (18投票s)
2006年5月5日
3分钟阅读

42327

29
探索 ASP.net 2.0 中的母版页的细微差别
引言
ASP.net 2.0 的一个亮点是“母版页”功能。 母版页功能是许多开发人员曾尝试创建替代方案但未成功的功能之一。 在 ASP.net 2.0 之前的几乎所有开发平台都从未接近实现任何接近母版页的功能。 然而,尽管功能强大且优雅,但很少有人深入了解母版页可以带来的全部影响。 因此,在本文中,我们将深入探讨母版页的深层含义。
什么是母版页
母版页的想法源于 PowerPoint。 多年来,PowerPoint 一直在实施母版页的概念(在 PowerPoint 中称为幻灯片母版)。 基本思想是通过将所有公共元素放在一个页面(母版页)中并在此母版页之上构建其余页面来减少重复。 从编程角度来看,将母版页视为一个只能用于继承目的的虚拟基类。 实际例子: 不是在每个页面上复制网页标题,而是在母版页中创建网页标题,然后在母版页之上(或从母版页继承)创建所有页面。
它是如何工作的
在母版页中,可以创建内容占位符。 正如其名称所示,内容占位符是用于由构建在顶部(或继承)此母版页的页面提供的内容的占位符。 示例:
在母版页中: <asp:contentplaceholder id="Text" runat="server"/>
在网页中: <asp:content id="Content1" contentplaceholderid="Text" runat="server">一些文本。</asp:content>
母版页的主要功能
- 减少重复: 如前所述,它减少了重复。
- 多重继承或嵌套: 可以有多个母版页相互继承(或嵌套)。 例如,母版页 B 继承自母版页 A。 因此,直接继承母版页 B 的页面 gamma 也间接继承母版页 A。 然而,在 Visual Studio 2005 中,此功能没有设计时支持,因此需要手动编写此功能。 此代码示例:
母版页 A 的页面标题: <%@ master language="C#" %>
母版页 B 的页面标题: <%@ master language="C#" masterpagefile="~/MP_A.master"%>
页面 Gamma 的页面标题: <%@ page language="C#" masterpagefile="~/MP_B.master" %> - 能够以编程方式从普通页面的代码隐藏访问母版页的元素:
假设您正在开发一个电子商务应用程序,并且页面的标题有一个购物车小计用户控件。 整个标题可以放在母版页中,并且可以通过页面的代码隐藏轻松访问购物车小计用户控件。 这是一个例子:
MasterPage m = Page.Master;
Cart c = (Cart)m.FindControl("oCart");
c.SubTotal = 45.33; - 能够指定默认内容: 如果网页未提供一个或多个内容占位符的内容,则使用默认内容。 默认内容放置在母版页中的内容占位符标记之间。
结论
正如您所看到的,这确实是一个强大的功能。 此功能最明显的用途之一是在电子商务技术中。 从我目前在网络上看到的情况来看,alim systems 已经充分利用了这项技术。 希望您从 ASP.net 2.0 亮点的这一集中有所收获。 下次再见,保重。