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