html - 服务器端显示/隐藏 HTML,而不产生额外的标记

标签 html asp.net .net webforms

使用类似这样的东西来显示/隐藏某些标记:

<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/

相关文章:

html - 如何模糊滚动容器的右侧和左侧?

html - HTML 文本区域内的双向 (BiDi) 文本不遵守 LRM 控制字符

javascript - 如何在angular js中从前端获取下拉列表的选定值

javascript - underscore.js 中按日期对数组进行排序

javascript - 将鼠标悬停在类 "thing"、 "bn1"、 "bn2"等上时编辑类 "bn3"的 css?

javascript - HTML anchor 标签的 onclick 属性不调用 javascript 函数

javascript - 将 asp.net 控件作为参数传递给 javascript 函数

.net - 从 F# 调用带有多个参数的 C# 函数

c# - 使用资源键的绑定(bind)字段中的标题文本

c++ - 如何在 C++ VS2012 中转换或创建 .NET v3.5 解决方案(特别是工具集)