ASP.Net占位符vs if指令

时间:2014-02-12 06:53:58

标签: asp.net placeholder-control

当我想要有条件地包含某些内容时使用标记时,我会以正常方式使用占位符:

<asp:Placeholder Visible=<%# IsExpired %>
  <span>Prolong your subscription</span>
</asp:PlaceHolder>

我也可以使用if-directive:

<% if(IsExpired) {%>
  <span>Prolong your subscription</span>
<% }%>

我更喜欢使用第一个,因为它不会让我的标记变得混乱。什么是有条件地包含内容的最佳方式?从性能的角度来看,它们是否相似?

3 个答案:

答案 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建议的是正确的。如果你需要隐藏实际只有一个控件,你可以直接隐藏控件。