我正在使用文字控件来显示一个html格式的文本。它不会显示br,hr标签,因为空的空格行消失了。任何人都可以帮我解决这个问题吗?
答案 0 :(得分: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或其他样式正在搞乱你的输出。我建议在一个干净的项目上测试它,看它是否按预期工作......
答案 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>