Posting data to controller using CKEditor MVC 5

I got a problem using CKEditor with MVC 5 From my script, I initiate my TextArea to CKEditor like this

<script>
    var S_ID = parseInt(@Model.S_ID) || 0;
    if (S_ID == 0)
        $("#S_ID").chosen(); //Just some chosen plugin
    CKEDITOR.replace('SC_Content');//Transform my TextAreaFor to CKEditor

    function SubmitForm(form) {
                var ck = CKEDITOR.instances['SC_Content'];
                if (ck) //check if instance exist
                {
                    CKEDITOR.instances[ck].updateElement();
                    CKEDITOR.remove(ck);
                }
            $.ajax({
                type: "POST",
                url: form.action,
                data: $(form).serialize(),
                success: function (data) {
                    if (data.success) { //It shows the data as text
                        alert(data.message); //Not continue to exucute this
                        window.location.assign('@Url.Action("Index", "StoryChapters")')
                    }
                    else
                        alert(data.message);
                }
                });
            return false;
    }

</script>

and then post the serialized data to my controller

[ValidateInput(false)]
    [HttpPost]
    public ActionResult AddOrEdit(StoryChapter sc)
    {
        if (sc.SC_ID == 0)
        {
            sc.U_IDCreator = Int32.Parse(Session["userid"].ToString());
            sc.SC_CreatedDate = DateTime.Now;
            sc.SC_Slug = PublicClasses.GenerateSlug(sc.SC_Title + " " + sc.SC_Name);
            if (scm.AddStoryChapter(sc))
                return Json(new { success = "true", message = "Saved" }, JsonRequestBehavior.AllowGet);
            else
                return Json(new { success = "false", message = "Error" }, JsonRequestBehavior.AllowGet);
        }
        else
        {
            sc.SC_Slug = PublicClasses.GenerateSlug(sc.SC_Title + " " + sc.SC_Name);
            scm.UpdateStory(sc);
            return Json(new { success = "true", message = "Saved" }, JsonRequestBehavior.AllowGet);
        }
    }

The inserting or editing seem successfully but it shows the returned data as text

Result

I want the alert and window.location.assign being executed in the scripts Please let me know what is the problem here

<script>
    var S_ID = parseInt(@Model.S_ID) || 0;
    console.log(S_ID);
    if (S_ID == 0)
        $("#S_ID").chosen();
    //CKEDITOR.replace('SC_Content');
    function SubmitForm(form) {
                //var ck = CKEDITOR.instances['SC_Content'];
                //if (ck) //check if instance exist
                //{
                //    CKEDITOR.instances[ck].updateElement();
                //    CKEDITOR.remove(ck);
                //}
            $.ajax({
                type: "POST",
                url: form.action,
                data: $(form).serialize(),
                success: function (data) {
                    if (data.success) { 
                        alert(data.message); 
                        window.location.assign('@Url.Action("Index", "StoryChapters")')
                    }
                    else
                        alert(data.message);
                }
                });
            return false;
    }

</script>

^ Code above work fine without using CKEditor

Fixed, it's a bit stupid but just around CKEditor I have to updateElement() on CKEditor instance object

<script>
    var S_ID = parseInt(@Model.S_ID) || 0;
    console.log(S_ID);
    if (S_ID == 0)
        $("#S_ID").chosen();
    CKEDITOR.replace('SC_Content');
    function SubmitForm(form) {
                var ck = CKEDITOR.instances['SC_Content'];
                if (ck)//check if instance exist
                {
                    ck.updateElement(); /////////////////////
                    CKEDITOR.remove(ck);/////////////////////
                }
                console.log($("#SC_Content").val());
            $.ajax({
                type: "POST",
                url: form.action,
                data: $(form).serialize(),
                success: function (data) {
                    if (data.success) {
                        alert(data.message);
                        window.location.assign('@Url.Action("Index", "StoryChapters")')
                    }
                    else
                        alert(data.message);
                }
                });
        
            return false;
    }

</script>