我在 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
文本区域中,当前数据库内容显示在编辑器中。问题是一旦将原始文本编码发送到数据库,我相信当它重新显示在编辑器中时,它仍然是编码的,当它需要解码时。因此,编辑器将编码标签视为文本,并在现有标签周围放置新标签,这会造成混乱。
任何想法将不胜感激。让我知道这是否需要更多说明。
谢谢。