回发后的所见即所得编辑

时间:2011-12-06 16:41:18

标签: c# asp.net asp.net-mvc tinymce ckeditor

我尝试在页面中添加不同的所见即所得编辑器。如果我正在保存,然后尝试编辑我的记录,那么一切都很好。但是如果在编辑页面上我将无效值设置为某个记录的字段并提交,则ckeditor / tinymce包含带有周围<p></p>标记的编码html。如果我再次提交表单,那么我的wisiwyg编辑器包含编码的先前值,由其他<p></p>标记包围。等等。

我的编辑页面元素

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

中的我的描述属性
...
private string _description;

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

如何在ModelState.IsValid==false

时让所见即所得的编辑器正确加载属性值

2 个答案:

答案 0 :(得分:3)

从版本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
});

答案 1 :(得分:0)

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