Anton Putov
Anton Putov

Reputation: 1981

CKEditor html content lifecycle: asp net mvc case

My content will be edited number of times.So i need to store result html to database and load it again when it is neccessary.Here is my current start implementation:

@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>

But I get eror with initialization html variable.So, could anyone show how correct encode / decode html?

EDIT

Here is data controller receives:

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

Values like this I store in database and try insert again.

Upvotes: 0

Views: 1509

Answers (1)

Moby&#39;s Stunt Double
Moby&#39;s Stunt Double

Reputation: 2550

First things first, to fix your code syntactically, it should probably read something like:

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

However, why not instead of dealing with the markup in JavaScript and having to escape and unescape it, dump it directly where it should go i.e.

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

And then transform that textarea into your ckEditor? As per their basic example here: http://docs.ckeditor.com/#!/guide/dev_framed

Secondly, aside from that I am not sure what errors you are receiving with your controller, so you will have to post further details for me to help you beyond the above.

I hope this helps.

Upvotes: 1

Related Questions