【发布时间】:2010-09-05 14:57:55
【问题描述】:
我刚刚学习了 ASP.NET 2.0 中的母版页。
它们听起来很棒,但它们在实践中的效果如何?
有没有人有过在大型网站上使用它们的经验?
【问题讨论】:
标签: asp.net .net master-pages asp.net-2.0
我刚刚学习了 ASP.NET 2.0 中的母版页。
它们听起来很棒,但它们在实践中的效果如何?
有没有人有过在大型网站上使用它们的经验?
【问题讨论】:
标签: asp.net .net master-pages asp.net-2.0
我很确定我只在 ASP.NET MVC 的上下文中使用母版页,所以我不确定它是否与 Web 表单不同,但根据我的经验,它们不仅非常出色,而且我无法想象不使用它们。母版页是网页的代码继承。
【讨论】:
它们非常有用,尤其是在 CMS 环境中和大型网站中,正如 MattMitchell 所说,如果没有它们,您将无法构建大型网站。
选择模板,每个模板都有不同的可编辑区域,工作完成。母版页也可以继承,因此您可以拥有一个 Style.Master,派生一个 Header.Master,然后从中派生所有基于布局的模板。
【讨论】:
母版页使构建支持模板的网站变得容易。
我认为使用母版页构建网站最棘手的部分是知道何时将内容放入母版页以及何时将内容放入子页上的 ContentPlaceHolder。通常,动态内容进入占位符,而静态项目进入母版页,但有时会出现灰色区域。这主要是一个设计/架构问题。
【讨论】:
如果您想在应用程序的所有页面中保持应用程序的外观,它们是必须的。
它们相当容易使用:
首先,设计您的母版页并定义您想要放置内容的位置:
<%@ 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 控件,与其他公司所能提供的相比,它使我们具有优势。
【讨论】:
实际上,我并不经常发现不使用 MasterPages 开发的网站。它们允许对网站外观和感觉进行简单而轻松的操作,并且使导航元素和共享内容片段变得轻而易举。
ASP.Net 3.5 甚至允许跨单个母版页处理多个内容页和标题部分。
我将它评为使用 ASP.Net 的 Web 开发人员的 10 大工具。
即使是 ASP.Net MVC 也使用 MasterPages,而 Paul Haack 和他的人群放在一起的所有示例都使用了它们。
【讨论】:
我在这里呼应其他声音。我在 2.0 中使用过 Master Pages,该功能对我来说非常棒。我一直在嵌入横幅、标准化背景、从 Active Dir 捕获的内容和其他 JavaScript 功能,以便在整个应用程序中使用,保持外观和感觉的一致性,而无需在多个页面上重复工作。很棒的功能。
【讨论】: