我有一个基本的asp转发器,可生成ul
及其子li
。似乎每个li
前面都有这个神奇的零空间字符(​
)。这会通过在每个列表项之间添加额外的空间来扰乱设计。
该代码目前位于开发网站上,因此我无法为您提供链接。这是基本标记
<asp:Repeater ID="rptrPageMeta" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
<div class="clear"></div>
</FooterTemplate>
</asp:Repeater>
转发器具有在Presenter中绑定到它的数据项列表。但是在这个例子中它是无关紧要的,因为每个项目都没有呈现。这就是它产生的结果:
<ul>
​
<li>
</li>​
<li>
</li>​
<li>
</li>​
<li>
</li>​
<li>
</li>​
<li>
</li>
</ul>
我想删除该字符而不是执行CSS hack来隐藏它。我试图通过将所有代码放在一行来从文件中删除所有空格。这删除了那里的白色空间,但不会摆脱零空间字符。我还在notepad ++中编辑了文件,显示了所有字符,但字符不存在。
有什么方法可以删除这个角色?
编辑:我确实创建了一个新项目,但无法重现此问题。我现在唯一可以假设的是它是由Sitefinity引起的。此代码用于Sitefinity 5 CMS内的小部件模板。
当前黑客:我解决这个问题的方法是在特定列表中使用以下js:
if ($('.my-list').length > 0) {
$('.my-list').each(function() {
$(this).html($(this).children('li'));
});
}
答案 0 :(得分:0)
在ItemTemplate中,让标签彼此相邻。
<ItemTemplate><li></li><ItemTemplate>
答案 1 :(得分:0)
您从错误的假设开始,即Repeater控件正在发出此字符。它不是。您的数据或源代码都包含char。
当然,您无法在Visual Studio中看到该字符,因为它毕竟是零宽度。尝试使用Notepad ++并将其配置为显示特殊字符。或者使用十六进制编辑器。