3

我正在使用文字控件来显示 html 格式的文本。它不显示 br,hr 标签,结果空白行消失了。有人可以帮我解决这个问题吗?

4

2 回答 2

7

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

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

这将输出:

在此处输入图像描述

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

编辑以下 OP 评论:另一个完全符合他要求的示例:

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

输出为:

在此处输入图像描述

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

于 2012-12-22T14:38:53.283 回答
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>
于 2012-12-22T14:58:39.817 回答