MVC 5 CKEditor SetData来自DB的编辑器

时间:2014-09-15 13:34:08

标签: javascript asp.net-mvc ckeditor asp.net-mvc-5

几乎所有东西都使用CKEditor插件,剩下的唯一问题是将已经保存到数据库的数据加载到WYSIWYG编辑器中。

如果我在javascript中尝试类似这样的测试,它可以正常工作。

<script>
    var value = "<h1>Awesome</h1>";

    var config = {};
    editor = CKEDITOR.appendTo('editor', config, html);

    editor.setData(value);
</script>

因此,这会创建编辑器并实际尝试加载&#34; html&#34;变量,但目前只是空的。

因此,如果我查看我的数据库,我有一个名为Description(nvarchar(max),null)的字段,该字段当前具有此值:<h1>Awesome</h1>

但如果我尝试在Javascript中获取此值,则会出现错误:

Uncaught SyntaxError: Unexpected token ILLEGAL 

如果我查看控制台日志,它看起来像这样:

 var value = '<h1>Awesome</h1>
Uncaught SyntaxError: Unexpected token ILLEGAL 
';

1 个答案:

答案 0 :(得分:0)

更新

好的,经过一些实验,我设法创建了一个可行的解决方案。

我为描述

创建了一个隐藏字段
@Html.HiddenFor(m => m.Note.Description)

我这样表现出来:

<div id="editorcontents" class="well padding-10">
  @Html.Raw(Model.Note.Description)
</div>

当我进入编辑模式时,我隐藏编辑器并从隐藏字段中将值设置到编辑器。

if (editor)
    return;

$('#editorcontents').hide();
var config = {};
var html = $('#Note_Description').val();

editor = CKEDITOR.appendTo('editor', config, html);

在我的ajax更新函数的成功方法中,我销毁编辑器并更新隐藏字段中的值。

success: function (data) {
   editor.destroy();
   editor = null;
   $('#Note_Description').val(data[2].Description);
}

所以以某种方式通过Jquery获取值来解决问题。