如何在ASPX页面中显示string变量中的HTML格式内容?
实现方法
要把转义后的HTML字符串还原成可渲染的HTML标签显示在ASPX页面,有两种常用方案:
方案一:使用Literal控件(推荐)
Literal控件会直接输出内容,不会添加额外容器,适合渲染原生HTML:
- 在ASPX页面中添加Literal控件:
<asp:Literal ID="litHtmlContent" runat="server"></asp:Literal>
- 在后台sample.aspx.vb中,通过
Server.HtmlDecode还原转义字符,再赋值给Literal:
' 示例目标字符串(转义后的<p><strong>Hi</strong></p>) Dim htmlStr As String = "<p><strong>Hi</strong></p>" litHtmlContent.Text = Server.HtmlDecode(htmlStr)
Server.HtmlDecode会把<还原为<、>还原为>,Literal控件会将处理后的HTML直接渲染到页面,最终呈现出加粗的Hi文本。
方案二:使用Label控件(需配置属性)
Label默认会转义内容,需设置TextMode="PassThrough"来允许渲染HTML:
- 在ASPX页面添加Label控件:
<asp:Label ID="lblHtmlContent" runat="server" TextMode="PassThrough"></asp:Label>
- 后台赋值逻辑和Literal一致:
Dim htmlStr As String = "<p><strong>Hi</strong></p>" lblHtmlContent.Text = Server.HtmlDecode(htmlStr)
注意事项
- 若字符串来自用户输入,需防范XSS攻击,确保内容可信或做安全过滤。
- 避免直接用
Response.Write输出,易破坏页面布局结构。
内容的提问来源于stack exchange,提问作者Sharon Watinsan
相关产品推荐
相关产品推荐

