回发后的所见即所得编辑器

本文关键字:所见即所得 编辑器 | 更新日期: 2023-09-27 18:16:52

我尝试在我的页面中添加不同的所见即所得编辑器。如果我正在保存,然后试图编辑我的记录,那么一切都没问题。但是,如果在编辑页面上,我设置无效的值到一些记录的字段,然后提交ckeditor/tinymce包含编码的html与周围的<p></p>标签。如果我再次提交表单,那么我的wisiswyg编辑器将包含编码的前一个值,并由额外的<p></p>标记包围。等等。

我的编辑页面元素

...
@Html.EditorFor(m => m.Description)
...
<script type="text/javascript">
    CKEDITOR.replace('Description');
    CKEDITOR.config.htmlEncodeOutput = true;
</script>

My Description属性在

...
private string _description;
public string Description
{
     get
     {
         return HttpUtility.HtmlDecode(_description);
     }
     set
     {
         _description = value;
     }
}
...

如何使wysiwyg编辑器正确加载ModelState.IsValid==false时的属性值

回发后的所见即所得编辑器

从3.0a1版本开始,当使用TinyMCE编辑时,如果正在编辑的HTML没有根块元素(div, p, table等),那么它将自动换行内容。您可以通过设置forced_root_block属性来禁用此功能。

节选自http://www.tinymce.com/wiki.php/Configuration:forced_root_block

tinyMCE.init({
        ...
        forced_root_block : null
});

在这种情况下,另一种方法是删除CKEDITOR.config.htmlEncodeOutput = true;并将[AllowHtml]属性设置为Description属性