html编码/解码 - ckeditor

时间:2013-02-20 11:05:01

标签: asp.net razor ckeditor

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

要绕过此而不将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>

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

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

感谢。

1 个答案:

答案 0 :(得分:1)

在我提交这个问题之后,我给了这个正确的想法。

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