当我想要有条件地包含某些内容时使用标记时,我会以正常方式使用占位符:
<asp:Placeholder Visible=<%# IsExpired %>
<span>Prolong your subscription</span>
</asp:PlaceHolder>
我也可以使用if-directive:
<% if(IsExpired) {%>
<span>Prolong your subscription</span>
<% }%>
我更喜欢使用第一个,因为它不会让我的标记变得混乱。什么是有条件地包含内容的最佳方式?从性能的角度来看,它们是否相似?
答案 0 :(得分:2)
本机HTML标记总是比渲染服务器控件更快,因为没有时间来渲染它们
答案 1 :(得分:1)
我认为无论你选择何种方式,都与表现无关。但实际上您可以使用以下代码:
<asp:Label runat="server" Visible=<%# IsExpired %>
Prolong your subscription</asp:Label>
而不是另外两个。这可能会让它看起来更直接。
答案 2 :(得分:1)
我永远不会在Web窗体视图中使用C#代码。另外,我将避免在标记中设置Visible属性,我会在某些事件后面的代码中设置它。
phWhatever.Visible = IsExpired;
通常,您可以避免创建IsExpired属性。
当然@Johnny建议的是正确的。如果你需要隐藏实际只有一个控件,你可以直接隐藏控件。