3

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

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

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

4

3 回答 3

2

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

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

...然后在代码中必要的地方调用。

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

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

于 2016-09-18T13:58:02.520 回答
1

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

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

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

于 2011-11-03T15:35:41.010 回答
0

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

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

于 2011-11-03T15:33:37.563 回答