我刚刚学习了 ASP.NET 2.0 中的母版页。
它们听起来很棒,但它们在实践中的效果如何?
有没有人有将它们用于大型网站的经验?
我刚刚学习了 ASP.NET 2.0 中的母版页。
它们听起来很棒,但它们在实践中的效果如何?
有没有人有将它们用于大型网站的经验?
我很确定我只在 ASP.NET MVC 的上下文中使用母版页,所以我不确定它是否与 Web 表单不同,但根据我的经验,它们不仅非常好,而且我无法想象不使用它们. 母版页是对网页的代码继承。
如果您想在应用程序的所有页面中保持应用程序的外观,它们是必须的。
它们相当容易使用:
首先,设计您的母版页并定义您希望放置内容的位置:
<%@ Master ... %>
<%-- HTML code --%>
<asp:ContentPlaceHolder id="plhMainContent" runat="server" />
<%-- HTML code --%>
您可以拥有任意数量的占位符,只需给它们适当的标识符,因为您稍后会需要它们。
然后在创建aspx
页面时,您需要提及使用哪个母版页以及在哪个占位符中放置什么内容。
<%@ Page ... master="~/MasterPage.master" ... %>
<asp:Content ID="ContentIdentifier" ContentPlaceholderid="plhMainContent" runat="server">
<%-- More HTML here --%>
<%-- Insert web controls here --%>
</asp:content>
只需确保链接到正确的母版页,并且您的内容引用了正确的占位符。
母版页可以节省大量时间并且非常强大。那里有教程,了解占位符和 Web 控件的强大功能。
在我工作的地方,我们为一些大公司广泛使用母版页和 Web 控件,与其他公司可以提供的相比,它使我们具有优势。
它们非常有用,特别是在 CMS 环境中和大型站点中,正如 MattMitchell 所说,如果没有它们,您将构建一个大型站点是不可想象的。
选择模板,每个模板都有不同的可编辑区域,工作完成。母版页也可以被继承,因此您可以拥有一个 Style.Master,派生一个 Header.Master,然后从中派生所有基于布局的模板。
母版页使构建支持模板的网站变得容易。
我认为使用母版页构建网站最棘手的部分是知道何时将内容放入母版页以及何时将内容放入子页面上的 ContentPlaceHolder。通常,动态内容进入占位符,而静态项目进入母版页,但有时会有灰色区域。这主要是一个设计/架构问题。
在实践中,我并不经常发现不使用 MasterPages 开发的网站。它们允许对网站外观和感觉进行简单轻松的操作,并且还使导航元素和共享内容片段变得轻而易举。
ASP.Net 3.5 甚至允许跨单个母版页的多个内容页和标题部分的操作。
我将它评为使用 ASP.Net 的 Web 开发人员的十大工具之一。
甚至 ASP.Net MVC 也使用 MasterPages,而 Paul Haack 和他的人群放在一起的所有示例都使用了它们。
我在这里呼应其他声音。我在 2.0 中使用过 Master Pages,该功能对我来说非常棒。我一直在嵌入横幅、标准化背景、从 Active Dir 捕获的内容和其他 JavaScript 功能,以便在整个应用程序中使用,保持外观和感觉的一致性,而无需在多个页面上重复工作。很棒的功能。