我在 cshtml 页面中使用 ckeditor 将内容输入到我的数据库中,这些内容稍后将显示在带有 html 标签的页面上,以使文本更易于阅读。由于我通过文本区域输入内容,因此收到一条错误消息,指出我正在输入的 html 标签<h1><p>
有潜在危险。
为了绕过这个问题而不将请求验证设置为 false,我在 config.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>
With @Memo
在文本区域中,当前数据库内容显示在编辑器中。问题是,一旦原始文本被编码发送到数据库,我相信当它在编辑器中重新显示时,当它需要解码时,它仍然是编码的。因此,编辑器将编码标签视为文本,并将新标签放置在现有标签周围,这会造成混乱。
任何想法将不胜感激。如果需要更多说明,请告诉我。
Thanks.
在我提交这个问题后,我对此进行了适当的思考。
I used @Html.Raw(System.Web.HttpUtility.HtmlDecode(row.Memo))
解码要在页面上显示的数据,所以我能够使用@Html.Raw(System.Web.HttpUtility.HtmlDecode(Memo))
代替@Memo
在编辑器中显示,这纠正了我的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)