我有一个母版页,我想添加一个占位符两次 - 这样我在母版页的两个位置都有相同的占位符,以便实际页面只指定一次占位符的内容,并且该内容在结果页面上呈现两次。目的是避免内容重复。
如果我尝试两次添加具有相同 id 的占位符,它将无法编译 - ASP.NET 不喜欢这样。
我该如何做到这一点?还有什么其他选择?
我有一个母版页,我想添加一个占位符两次 - 这样我在母版页的两个位置都有相同的占位符,以便实际页面只指定一次占位符的内容,并且该内容在结果页面上呈现两次。目的是避免内容重复。
如果我尝试两次添加具有相同 id 的占位符,它将无法编译 - ASP.NET 不喜欢这样。
我该如何做到这一点?还有什么其他选择?
将占位符放在 中Action
,并在必要时调用它。
<%
Action myPlaceholder = () =>
{%>
<asp:ContentPlaceHolder ID="X" runat="server" />
<%}
%>
...然后在代码中必要的地方调用。
<% if (conditionMet)
myPlaceholder(); >%
错误发生在编译时:如果存在具有相同ID的占位符,将进行投诉。这种方法清除了这个障碍,并提供了很大的灵活性。
我认为您可能正在寻找用户控件:
http://msdn.microsoft.com/en-us/library/y6wb1a0e.aspx
使用用户控件,您可以将您的标记和代码添加到一个.ascx
中,然后在您的母版页/Web 表单中多次调用它,从而避免重复代码。
我还没有尝试过,但是您可以查找您有兴趣复制的占位符的内容,并将其复制到您的代码中。这篇文章: http: //programcsharp.com/blog/archive/2009/01/22/test-if-masterpage-contentplaceholder-has-content-or-is-empty.aspx
对操作母版页有一些很好的洞察力。