在ASP.NET Literal Control中显示HTML

时间:2015-09-02 18:50:43

标签: asp.net

我的页面上显示了以下ASP.NET Literal Control

<div class="col-md-8 text-justify">
    <p>
        <asp:Literal ID="Literal1"
            Mode="PassThrough"
            Text= "<%#:Item.Description %>"          
            runat="server">
        </asp:Literal>

    </p> 
</div> 

此控件绑定到我的SQL Server表中的一个字段,表中名为Description的列包含带有<p> <ul> <br>等HTML标记的文本。

然而,当文本显示在Literal控件中时,它显示为原样,即HTML不会被渲染。

如果Literal控件不支持渲染,我还有其他选项吗?

1 个答案:

答案 0 :(得分:4)

您的问题不在于Literal控件。这是嵌入HTML的方式。试试这个:

<asp:Literal ID="Literal1"
        Mode="PassThrough"
        Text= "<%# Item.Description %>"          
        runat="server">
    </asp:Literal>

注意我遗漏了冒号?该冒号用于防止注入攻击,其中嵌入的值的内容可能来自用户。但是如果您信任HTML内容,那么删除冒号将嵌入HTML并允许它正确呈现而不是转义它。