asp.net - 母版页是要走的路吗?

标签 asp.net user-controls master-pages

我可能是疯了,但是母版页让我害怕,因为我害怕一旦我被锁定在使用母版页,我会遇到我只想继承母版页的 90% 视觉内容的情况,迫使我打破继承,因此必须复制主人中的内容并将其带入 child 。

我觉得这是任何类型的“继承”的问题,因为您必须小心,但似乎至少您可以覆盖常规类中的方法。

我在这里可能不太连贯,但用户控件似乎给你更多的灵 active 。唯一的缺点是您必须将它们拖到网络表单上。对此,我说大不了。

将我的应用程序从使用用户控件转换为母版页让我感到害怕,我担心我的 Javascript 会损坏。

评论?

最佳答案

不要害怕。

您可以创建任意数量的占位符,使您的母版页非常精细。这些占位符还可以包含默认内容和控件。

因此,在需要默认标记的 90% 页面中,您可以省略覆盖内容。

或者,在 10% 的情况下,您需要不同的东西,您可以提供覆盖标记

例子:

<%@ Master Language="C#" %>
<html>
<body>
<asp:ContentPlaceholder id="Headline" runat="Server">
    My Default Headline
</asp:ContentPlaceholder>
<asp:ContentPlaceholder id="Main" runat="Server" />
</body>
</html>

在您的主页上,您可以有这样的页面:
<%@ Page MasterPageFile="..." %>
<asp:Content ContentPlaceHolderID="Headline" runat="Server">
    My homepage headline
</asp:Content>

<asp:Content contentplaceholderid="Main" runat="server">
    My homepage main content
</asp:Content>

在所有其他页面上,通过省略标题的标签来利用默认的“标题”,如下所示:
<%@ Page MasterPageFile="..." %>
<asp:Content contentplaceholderid="Main" runat="server">
    My page main content
</asp:Content>

关于asp.net - 母版页是要走的路吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1799886/

相关文章:

asp.net - 更改 ContentPlaceHolder 的 ID

asp.net - 如何获取每个 IE 实例的 session ID?

asp.net - 简单的普通 ASP.NET 应用程序示例(没有 Web 窗体和 MVC)

c# - 我可以在没有 runat ="server"的情况下从用户控件修改 .NET 中页面的 <head/> 部分吗?

c# - 用户控件不呈现 ascx 的内容

c# - 在 Windows 窗体中以编程方式添加新的用户控件

asp.net - <asp :ContentPlaceholder> generates parser exception 中的 &lt;meta&gt; 标记

asp.net - 页面文档模式

.net - 处理中继器中包含的用户控件的自定义事件

.net - 在没有类型引用的情况下反序列化 session 对象?