使用formcollection序列化的tinymce文本编辑器

时间:2016-03-04 06:52:37

标签: jquery ajax asp.net-mvc-5 tinymce

有谁能告诉我如何使用formcollection.serialize方法序列化tinymce文本编辑器内容?  我尝试使用:

tinyMCE.init({
    selector: "textarea"
});


$("#btnEmail").click(function () {          
    tinyMCE.triggerSave();
    $.ajax({
        url: '@Url.Action("Email")',
        type: "POST",
        data: $('#emailform').serialize(),// + "&emailContent=emailContent",
        // data: data,
        dataType: "json",
        traditional: true
    });
});
<textarea name="emailContent" id="emailContent" style="width: 100%" ></textarea>

公共ActionResult电子邮件(FormCollection数据)         {             foreach(data中的var键.AllKeys)             {                 var value = data [key];             }             string Content = data [“emailContent”];         }

1 个答案:

答案 0 :(得分:0)

经过大量的努力,我完全解决了这个问题。我的代码中没有两件事:1。在ajax调用之前的表单提交和2.在我的控制器之上添加属性[Validateinput(false)]。以下是最终解决方案:

   // Controller
    [ValidateInput(false)]
    public ActionResult Email(FormCollection data)
    {
        foreach (var key in data.AllKeys)
        {
            var value = data[key];
        }
       string Content = data["emailContent"];
    }

使用Javascript:

   tinyMCE.init({
        selector: "textarea"           

    });

// ========电子邮件按钮

     $("#btnEmail").click(function () {
         tinyMCE.triggerSave(true, true);
        $('#emailform').submit();
        $.ajax({
            url: '@Url.Action("Email")',
            type: "POST",

            data: $("#emailform").serialize(),
            dataType: "json",
            traditional: true

        });
    });

//========= HTML
<textarea name="emailContent" style="width:100%"></textarea>