【问题标题】:Render Html From Database to Asp.net将 Html 从数据库渲染到 Asp.net
【发布时间】:2013-09-25 11:30:00
【问题描述】:

我有一个 Html 字符串,它存储在 Database 中。我获取此字符串并尝试通过文字控件呈现它,但它再次在该文字中呈现完整的 HTML 代码。我也尝试过 html 编码,但仍然失败。

我的文本存储在数据库中是这样的:

<p><b>Location. </b> <br />The Leela Palace Udaipur is a business-friendly property     located in Udaipur's Lake Pichola neighborhood, close to Lake Palace, Jag Niwas, and Jagdish Temple. Additional points of interest include City Palace and Crystal Gallery. </p>

但是当我查看页面时,它和上面一样。

请帮助我找到解决方案。我没有使用 MVC

【问题讨论】:

  • 你想在 div 中显示它吗?或任何其他 HTML 标记?

标签: html asp.net sql-server


【解决方案1】:

最好的方法,使用HttpUtility.HtmlEncode(this.Text)

为我工作

【讨论】:

    【解决方案2】:

    将您的 LiteralControl 的 LiteralMode 设置为 PassThrough

    <asp:LiteralControl ID="yourHtml" runat="server" LiteralMode="PassThrough"></asp:LiteralControl>
    

    来自 MSDN:

    如果指定 PassThrough,则 Text 属性的全部内容 不做任何修改就传递给设备或浏览器

    警告:我希望您对数据库中的 HTML 有信心,没有任何恶意可以潜入,因为这是危险的。

    【讨论】:

    • 再次完整的 HTMl 渲染
    • 我又得到了同样的文字:

      位置。
      The Leela Palace Udaipur是商务便利型酒店,位于乌代浦皮丘拉湖附近,靠近Lake Palace、Jag Niwas和Jagdish Temple。其他景点包括城市宫殿和水晶画廊。

    • 您可能需要检查Item.hotelDescription 以查看它是否已经编码
    • 这是我的数据库字符串:

      位置。
      The Leela Palace Udaipur是商务便利型酒店,位于乌代浦皮丘拉湖附近,靠近Lake Palace、Jag Niwas和Jagdish Temple。其他景点包括城市宫殿和水晶画廊。

    • 它不是直接来自 Linq 的编码:hbase.hotelDescription = hotel.PropertyDescription;
    【解决方案3】:

    查看LiteralMode 属性。

    【讨论】:

    • Mode属性值为transform
    • @jayeshbabel : 将模式设置为“PassThrough”
    • 我使用了占位符并使用 DataBind 方法。
    猜你喜欢
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多