2013-02-20 62 views
1

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

要绕过这个头也不回RequestValidation为假,在我cinfig.js文件我已经设置:

config.htmlEncodeOutput = true; 

我从数据库中我的网页显示解码时的数据。

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

这很好。当我尝试第二次编辑数据库中的内容时,我只会遇到麻烦。在textarea的,当前的数据库内容显示在编辑器中

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

随着@Memo

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

任何想法将不胜感激。让我知道这是否需要更多的澄清。

谢谢。

回答

1

在我提交这个问题后,我给了这个JUST恰当的思想。

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