如何在母版页上放置两次占位符?

时间:2011-11-03 15:24:21

标签: asp.net master-pages contentplaceholder

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

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

我如何实现这一目标?还有什么其他选择?

3 个答案:

答案 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

对操作母版页有一些很好的了解。