1

在使用标记时,如果我想有条件地包含一些内容,我会以正常方式使用占位符:

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

我也可以使用 if 指令:

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

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

4

3 回答 3

2

原生 HTML 标记总是比渲染服务器控件更快,因为没有时间花在渲染它们上

于 2014-02-12T13:00:52.933 回答
1

我永远不会在 Web 窗体视图中使用 C# 代码。此外,我将避免在标记中设置 Visible 属性,我将在某些事件的代码中设置它。

phWhatever.Visible = IsExpired;

很多时候,您可以避免创建 IsExpired 属性。

当然,@Johnny 的建议是正确的。如果您需要隐藏实际上只有一个控件的内容,您可以直接隐藏该控件。

于 2014-02-12T11:54:04.867 回答
1

我认为无论您选择此处的方式,都与性能几乎没有任何关系。但实际上您可以使用以下代码:

<asp:Label runat="server" Visible=<%# IsExpired %>
  Prolong your subscription</asp:Label>

而不是另外两个。这可以使它看起来更直接。

于 2014-02-12T07:02:19.540 回答