首先我使用的富文本編輯器是wangEditor——基於javascript和css開發的 Web富文本編輯器, 輕量、簡潔、界面美觀、易用、開源免費。
界面截圖:官網地址
然后把它加入到項目中去。如圖,如何將富文本編輯器導入項目,可參考官網的例子
前台代碼:
1 document.getElementById('btn').addEventListener('click', function () { 2 var title = $("#name").val() 3 var type = $("#list option:selected").val(); 4 var text = editor.txt.html(); 5 var param = { Title: title, Type: type, Text: text } 6 var params = JSON.stringify(param); 7 $.ajax({ 8 url: "@Url.Action("Addnote", "Admin")", 9 type: "post", 10 data: { Content: params }, 11 dataType: "JSON", 12 success: function (response) {console.log("OK")} 13 }) 14 }, false)
這時候前台傳過來的不是一個對象,而是一個Json字符串,怎么辦呢 ?
如:
"{\"Title\":\"標題\",\"Type\":\"21\",\"Text\":\"<p>這是富文本內容,html格式的</p>\"}"
后台處理方法如下(共4種,我這兒就用一種)
1 JObject jo = JObject.Parse(jsonText); 2 string[] values =jo.Properties().Select(item => item.Value.ToString()).ToArray();
要引用命名空間
using Newtonsoft; using Newtonsoft.Json; using Newtonsoft.Json.Linq;
后台代碼
[HttpPost] public JsonResult Addnote(string Content) { JObject jo = JObject.Parse(Content); string[] values = jo.Properties().Select(item => item.Value.ToString()).ToArray(); string Title = values[0]; string Text = values[2]; int Types = int.Parse(values[1]); return Json(getnote.Addacticle(Title, Types, Text)); }
按照一般的數據交互,目前來說沒得任何問題,於是便可運行了。結果
ajax 提交富文本編輯器中的內容怎么提交都提交不了,折騰半天,后來終於找到問題和解決方法
在你訪問的方法的頭上加上[ValidateInput(false)] 加上這句話后在提交就不會是 null 值了
完整的后台代碼
1 [HttpPost] 2 [ValidateInput(false)] 3 public JsonResult Addnote(string Content) 4 { 5 6 JObject jo = JObject.Parse(Content); 7 string[] values = jo.Properties().Select(item => item.Value.ToString()).ToArray(); 8 string Title = values[0]; 9 string Text = values[2]; 10 int Types = int.Parse(values[1]); 11 return Json(getnote.Addacticle(Title, Types, Text)); 12 13 }
完結~