2016-03-04 86 views
-1

誰能告訴我如何序列化tinymce文本編輯器內容與formcollection.serialize方法? 我嘗試使用:tinymce文本編輯器與formcollection序列化

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.AllKeys VAR鍵) { VAR值=數據[鍵]。 } string Content = data [「emailContent」]; }

+1

您有什麼問題?你得到什麼錯誤? –

+0

首先感謝您的回覆......其實我沒有得到任何錯誤,但問題是我的控制器的Formcollection參數無法呈現textarea的內容........但所有其他控件的值都通過Formcollection參數傳遞。謝謝 – moinulmithu

+0

是什麼讓你認爲textarea的價值沒有被序列化? –

回答

0

經過很多嘗試,我終於完美地解決了這個問題。我的代碼中缺少兩件事:1.在ajax調用之前提交表單並在控制器上方添加屬性[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>