asp.net文字不显示<br/> <hr />

时间:2012-12-22 14:35:28

标签: c# asp.net

我正在使用文字控件来显示一个html格式的文本。它不会显示br,hr标签,因为空的空格行消失了。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:7)

asp:Literal控件具有Mode属性,尝试将其设置为PassThrough,例如

<asp:Literal Mode="PassThrough" Text="This<hr />Works" runat="server" />

这将输出:

enter image description here

这似乎就是你所追求的......

在OP评论之后

编辑:另一个完全符合他想要的例子:

<asp:Literal runat="server" Mode="PassThrough" Text="<p>para 1</p><br/><p>para2 </p>"/>

输出为:

enter image description here

我猜你有一些CSS或其他样式正在搞乱你的输出。我建议在一个干净的项目上测试它,看它是否按预期工作......

答案 1 :(得分:2)

您可以使用

<asp:Literal Mode="PassThrough"></asp:Literal>
来自MSDN的

定义:

PassThrough :不会修改控件的内容。

编码:控件的内容将转换为HTML编码的字符串。

转换:不受支持的标记语言元素将从控件的内容中删除。如果在支持HTML或XHTML的浏览器上呈现Literal控件,则不会修改控件的内容。

Transform Mode:
<br />
<asp:Literal ID="literal1" Mode="Transform" Text="<b>This is Transform </b>" 
runat="server" />
<br />
<br />
Pass Through Mode:
<br />
<asp:Literal ID="literal2" Mode="PassThrough" Text="<b><u>This is Pass Through</b></u>" runat="server" />
<br />

<br />
Encode Mode:
<br />
<asp:Literal ID="literal3" Mode="Encode" Text="<b>This is Encode </b>" 
runat="server" />
</div>
</asp:Content>

<br />
<asp:Label ID="Label1" runat="server" Font-Bold="True" ForeColor="#000099" />
</asp:Content>