我的页面上显示了以下 ASP.NET 文字控件

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

    </p>
</div>

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

但是,当文本显示在 Literal 控件中时,它会按原样显示,即 HTML 不会被呈现。

如果 Literal 控件不支持渲染,我还有哪些其他选择?

最佳答案

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

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

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

关于asp.net - 在 ASP.NET 文字控件中显示 HTML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32360940/

10-13 06:17