【发布时间】:2009-06-08 12:40:25
【问题描述】:
当内容占位符包含任何代码块时,它会报告控件集合为空。
例如:
MasterPage.aspx
<asp:ContentPlaceHolder ID="Content1" runat="server" />
<asp:ContentPlaceHolder ID="Content2" runat="server" />
<div>Content1: <%= Content1.Controls.Count %></div>
<div>Content2: <%= Content2.Controls.Count %></div>
APage.aspx
<asp:Content ContentPlaceHolderID="Content1" runat="server">
Plain text content.
</asp:Content>
<asp:Content ContentPlaceHolderID="Content2" runat="server">
<%= "Code block content." %>
</asp:Content>
这将呈现以下内容:
纯文本内容。代码块内容。
内容1:1
内容2:0
为什么母版页的 ContentPlaceHolder.Controls 集合是空的?
我想检查 ContentPlaceHolder 是否已填充(另请参阅 this question),但如果它包含任何 <%= 块,则无法检查。
有人知道解决这个问题的方法吗?
【问题讨论】:
-
感谢您对上一个问题的评论 - 稍后从办公室回家后会查看此内容。这让我很感兴趣! (+1 来自我!)稍后会更新 :)
标签: asp.net asp.net-mvc master-pages