如何删除零空格字符 (​)ASP 转发器生成的

本文关键字:ASP #8203 转发器 amp 字符 何删除 删除 空格 | 更新日期: 2023-09-27 18:36:16

我有一个基本的asp中继器,它可以生成一个ul及其子li s。似乎每个li前面都有这个神奇的零空间字符(​)。这会在每个列表项之间添加额外的空间来弄乱设计。

该代码目前在开发站点上,所以我无法为您提供链接。这是基本标记

<asp:Repeater ID="rptrPageMeta" runat="server">
<HeaderTemplate>
    <ul>
</HeaderTemplate>
<ItemTemplate>​
    <li>
    </li>
</ItemTemplate>
<FooterTemplate>
    </ul>
    <div class="clear"></div>
</FooterTemplate>
</asp:Repeater>

转发器具有在表示器中绑定到它的数据项列表。但在此示例中,这是无关紧要的,因为每个项目都不会呈现任何内容。这是它生成的:

<ul>
&#8203;
    <li>
    </li>&#8203;
    <li>
    </li>&#8203;
    <li>
    </li>&#8203;
    <li>
    </li>&#8203;
    <li>
    </li>&#8203;
    <li>
    </li>
</ul>

我想删除该字符,而不是进行CSS黑客来隐藏它。我试图通过将所有代码放在一行上来删除文件中的所有空格。这删除了那里的空格,但不会删除零空格字符。我还在记事本++中编辑了文件,其中显示了所有字符,并且该字符不存在。

有哪些方法可以删除此角色?

编辑:我确实创建了一个新项目,但无法重现此问题。我现在唯一能假设的是它是由Sitefinity引起的。此代码用于Sitefinity 5 CMS内部的小部件模板。

当前黑客:我解决这个问题的方法是在特定列表中使用以下 js:

if ($('.my-list').length > 0) {
    $('.my-list').each(function() {
        $(this).html($(this).children('li'));
    });
}

如何删除零空格字符 (&#8203;)ASP 转发器生成的

在 ItemTemplate 中,让标记彼此并排。

<ItemTemplate​><li></li><ItemTemplate>

您是从 Repeater 控件发出此字符的错误假设开始的。不是。您的数据或源代码都包含字符。

当然,你无法在Visual Studio中看到该字符,因为它毕竟是零宽度。尝试使用记事本++并将其配置为显示特殊字符。或者使用十六进制编辑器。