编辑:更新以更清晰。
我有一个无序的项目列表,我需要进行本地化。而不是包装每个列表项的文本 - 在数百个< li> s的过程中,可能会杀了我 - 我决定包装< ul>在字面上。这样,我就可以在资源文件中抛出“text”属性进行本地化。
然而,asp.net认为我的代码中的每个换行符都应替换为< br />。有没有一个属性或方法可以解决这个问题,除了在文本中替换每个\ n之外什么都没有?我尝试了Mode =“PassThrough”,这似乎没什么区别。
我暂时在< ul>的显示内部显示所有< br />在我的css中没有,但感觉很乱。我宁愿它根本不渲染< br /&gt ;.
代码:
<asp:Literal id="literal" runat="server">
<ul>
<li>Item 1</li>
<li>Item 2</li>
...
<li>Item 50</li>
</ul>
</asp:Literal>
它给了我什么:
<ul>
<br />
<li>Item 1</li>
<br />
<li>Item 2</li>
<br />
...
<br />
<li>Item 50</li>
<br />
</ul>
答案 0 :(得分:5)
&lt; asp:Literal Mode =“PassThrough”&gt;&lt; / asp:Literal&gt;
来自MSDN:
PassThrough :不会修改控件的内容。
编码:控件的内容将转换为HTML编码的字符串。
转换:从控件的内容中删除不支持的标记语言元素。如果在支持HTML或XHTML的浏览器上呈现Literal控件,则不会修改控件的内容。
答案 1 :(得分:0)
如何使用PlaceHolder
控件呢?
您可以通过编程方式将文本添加到PlaceHolder
控件中,如下所示:
this.MyPlaceHolderControl.Controls.Add(new LiteralControl(GetLocalizedResource()));
请注意,这使用的是LiteralControl
,而不是Literal
,这不会对您的内容采取任何措施。
这对你有用吗?