【问题标题】:How do I put a placeholder twice on master page?如何在母版页上放置两次占位符?
【发布时间】:2011-11-03 15:24:21
【问题描述】:

我有一个母版页,我想添加一个占位符两次 - 以便我在母版页的两个位置拥有相同的占位符,以便实际页面只指定一次占位符的内容,并且该内容在结果页面。目标是避免内容重复。

如果我尝试两次添加具有相同 id 的占位符,它将无法编译 - ASP.NET 不喜欢这样。

我如何做到这一点?还有什么其他选择?

【问题讨论】:

  • 你能举个例子吗?
  • 你打算如何设置内容?在标记或代码隐藏中?
  • 我曾经遇到过同样的问题,我用我想要复制的内容组成了一个用户控件。混乱,可能不是解决这个问题的最佳方法,但它完成了工作。

标签: asp.net master-pages contentplaceholder


【解决方案1】:

将您的占位符放在Action 中,并在必要时调用它。

<%
    Action myPlaceholder = () =>
    {%>
        <asp:ContentPlaceHolder ID="X" runat="server" />
    <%}
%>

...然后在代码中任何需要的地方调用。

<% if (conditionMet)
    myPlaceholder(); >%

编译时出现错误:如果存在具有相同ID的占位符,则会进行投诉。这种方法清除了这个障碍,并提供了很大的灵活性。

【讨论】:

    【解决方案2】:

    我认为您可能正在寻找用户控件:

    http://msdn.microsoft.com/en-us/library/y6wb1a0e.aspx

    使用用户控件,您可以将标记和代码添加到 .ascx 中,然后在母版页/Web 表单中多次调用它,从而避免重复代码。

    【讨论】:

      【解决方案3】:

      我没有尝试过,但是您可以查找您有兴趣复制的占位符的内容,并将其复制到您的代码中。本帖:http://programcsharp.com/blog/archive/2009/01/22/test-if-masterpage-contentplaceholder-has-content-or-is-empty.aspx

      对操纵母版页有一些很好的洞察力。

      【讨论】:

        猜你喜欢
        • 2012-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多