asp.net - 在 ASP.NET 文字控件中显示 HTML

标签 asp.net

我的页面上显示了以下 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 的列包含带有 HTML 标记的文本,如 <p> <ul> <br>

但是,当文本显示在 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/

相关文章:

c# - 单元测试 Web App 时如何模拟应用程序路径

c# - SqlDependency 尝试使用 log4net 执行某些操作并无法启动

c# - 找不到 wcf serviceActivations

asp.net - 如何确定表的最后一次插入、更新或删除记录的时间?

c# - 导出时如何在报告查看器中设置其他名称而不是默认 pdf 文件名?

.net - MVC HTML Helper 自定义命名空间

c# - Web 应用程序中的 LinqToSql 静态 DataContext

c# - IFrame : Page is post back or refreshing on iframe src

c# - 无效的 Intellisense 错误 CS0103 ASP.NET 网站 “The name does not exist in the current context”

asp.net - 为什么app.config和web.config同时存在?