使用类似这样的东西来显示/隐藏某些标记:
<asp:Panel runat="server" ID="MyPanel">
<li>...</li>
<li>...</li>
...
</asp:Panel>
它被渲染成这样:
<div>
<li>...</li>
<li>...</li>
...
</div>
现在我希望能够在服务器端显示/隐藏 MyPanel
但不希望呈现周围的 div
。
我可以做类似的事情:
<% if (MyCondition) { %>
<li>...</li>
<li>...</li>
...
<% } %>
但这对我来说看起来相当困惑。
或者我可以做类似的事情:
<li runat="server" ID="C1">...</li>
<li runat="server" ID="C2">...</li>
...
但这将要求所有“根”控件都具有 runat=server
属性,这会产生大量代码并且在我看来也很困惑。
我的问题:
有没有办法告诉 Panel
控件自己不生成任何标记?或者是否有其他控件可用于我的目的?
最佳答案
我最终使用了 Literal
control .
有了这个控件,我可以这样写:
<ul>
<li>1</li>
<li>2</li>
<asp:Literal runat="server" Visible="false">
<li>3</li>
<li>4</li>
</asp:Literal>
<li>5</li>
</ul>
结果是:
<ul>
<li>1</li>
<li>2</li>
<li>5</li>
</ul>
我也可以这样写:
<ul>
<li>1</li>
<li>2</li>
<asp:Literal runat="server" Visible="true">
<li>3</li>
<li>4</li>
</asp:Literal>
<li>5</li>
</ul>
结果是这样的:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
所以这正是我想要的:一个服务器控件,允许我显示/隐藏多个 HTML 标记标签,而无需呈现任何额外的标记。
关于html - 服务器端显示/隐藏 HTML,而不产生额外的标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36148006/