0

我的内容将被编辑多次。所以我需要将结果 html 存储到数据库并在需要时再次加载它。这是我当前的启动实现:

@using (@Html.BeginForm("EditArticle", "Admin", new { id =  ViewData["id"] }))
{
   <div id="editor"> </div>

   <input type="submit" value="save changes" onclick = "setValue()" />

   <input type ="hidden"  id="value" name="html" />
}

<script>
    var editor, html = 'Model.Text';    

    function createEditor() {
        if (editor)
        return;

    var config = { width:"900px"};
    editor = CKEDITOR.appendTo('editor', config,html);
}

function setValue() {
    $("#value").val(editor.getData());
}

createEditor();
</script>

但是我在初始化 html 变量时出错了。那么,任何人都可以展示如何正确编码/解码 html 吗?

编辑

这是数据控制器接收的:

    html = <p>ARTICLE 3</p>\r\n

像这样的值我存储在数据库中并再次尝试插入。

4

1 回答 1

1

首先,要在语法上修复您的代码,它可能应该是这样的:

var editor, html = '@Html.Raw(Model.Text)';

但是,为什么不处理 JavaScript 中的标记并不得不对其进行转义和取消转义,而是直接将其转储到它应该去的地方,即

<textarea name="editor1">@Html.Raw(Model.Text)</textarea>
<script>
    CKEDITOR.replace( 'editor1' );
</script>

然后将该文本区域转换为您的ckEditor?根据他们的基本示例:http: //docs.ckeditor.com/#!/guide/ dev_framed

其次,除此之外,我不确定您的控制器会收到哪些错误,因此您必须发布更多详细信息,以便我在上述内容之外为您提供帮助。

我希望这有帮助。

于 2013-04-11T15:06:54.583 回答