【问题标题】:html encode/decode - ckeditorhtml 编码/解码 - ckeditor
【发布时间】:2013-02-20 11:05:00
【问题描述】:

我在 cshtml 页面中使用 ckeditor 将内容输入到我的数据库中,这些内容稍后将显示在带有 html 标记的页面上,以使文本更易于阅读。由于我通过 textarea 输入内容,我收到一条错误消息,指出我输入的 html 标签 <h1><p> 具有潜在危险。

要绕过这个而不将 RequestValidation 设置为 false,在我设置的 cinfig.js 文件中:

config.htmlEncodeOutput = true;

在我的页面中显示时,我正在从数据库中解码数据。

@Html.Raw(System.Web.HttpUtility.HtmlDecode(row.Memo))

这很好用。只有当我第二次尝试编辑数据库中的内容时才会遇到麻烦。

我在编辑器中显示如下:

<textarea class="ckeditor" id="editor1" name="Memo" rows="25" cols="120">@Memo</textarea>

在文本区域中使用@Memo,当前数据库内容将显示在编辑器中。问题是,一旦将原始文本编码发送到数据库,我相信当它重新显示在编辑器中时,它仍然是编码的,当它需要解码时。因此编辑器将编码的标签视为文本,并在现有标签周围放置新标签,这会造成混乱。

任何想法将不胜感激。如果需要进一步说明,请告诉我。

谢谢。

【问题讨论】:

    标签: asp.net razor ckeditor


    【解决方案1】:

    在我提交此问题后,我对此进行了适当的思考。

    我使用@Html.Raw(System.Web.HttpUtility.HtmlDecode(row.Memo)) 来解码要在页面上显示的数据,因此我能够使用@Html.Raw(System.Web.HttpUtility.HtmlDecode(Memo)) 代替@Memo 在编辑器中显示,这更正了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-12
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      相关资源
      最近更新 更多