有兩種辦法
1.
1 $(document).ready(function () { 2 $("#saveAll").live("click", function () { //點擊id為saveAll 3 $('input:text').each(function (i) { //找到所有input的type為text的文本框 4 $(this).trigger('blur'); //執行所有input的type為text的文本框失去焦點事件 5 }); 6 //創建json數組 7 var json = "{" 8 $("input:text").each(function (i) { 9 if (i == 0) { 10 json += $(this).attr("id") + ":" + $(this).val(); 11 } else { 12 json += "," + $(this).attr("id") + ":" + $(this).val(); 13 } 14 }); 15 json += "}"; 16 //將json數組傳到后台 17 $.ajax({ 18 type: "Post", 19 url: "/Exam/Correcting", 20 data: { jsonmodel: json }, 21 dataType: "json", 22 success: function (r) { 23 }, 24 error: function (err) { 25 alert("查詢失敗"); 26 } 27 }); 28 29 $.post("/Exam/ExamCorrecting", $("form").serialize(), function (r) { 30 }); 31 return false; 32 });
后台添加解析傳過來的json數據的方法:
1 /// <summary> 2 /// 將json數據轉化為Object類型 3 /// </summary> 4 /// <param name="input"></param> 5 /// <returns></returns> 6 public static Object JsonDataToObject(String input) 7 { 8 try 9 { 10 if (input.Trim().StartsWith("{")) 11 { 12 JObject result = JObject.Parse(input); 13 if (result.Property("errorCode") != null) 14 { 15 throw new Exception(); 16 } 17 return result; 18 } 19 else 20 { 21 JArray result = JArray.Parse(input); 22 return result; 23 } 24 } 25 catch (Exception ex) 26 { 27 //Logger.Error("解析JSON數據異常:" + ex.Message); 28 return null; 29 } 30 }
最后遍歷傳過來的json數據了:
1 public ActionResult Correcting(string jsonmodel) 2 { 3 //解析傳過來的json數組 4 JObject obj = (JObject)JsonDataToObject(jsonmodel); 5 foreach (var item in obj) 6 { 7 } 8 }
這里說一下,解析出來的obj是一個鍵值對,也就是說,key必須要唯一的,否則會出錯.
2(mvc下).
1 $(document).ready(function () { 2 $.post("/Exam/ExamCorrecting", $("form").serialize(), function (r) { 3 }); 4 return false; 5 });
將整個表單post過去,FormCollection fc接受json,然后遍歷.
fc[item]為key值, v為value值
1 public ActionResult Correcting(FormCollection fc) 2 { 3 foreach (string item in fc) 4 { 5 var v = fc[item]; 6 if (string.IsNullOrEmpty(v)) 7 { 8 continue; 9 } 10 double score = double.Parse(v); 11 if (o_Res.updateExamAnswer(item, score)) 12 { 13 } 14 else 15 { 16 return Json(new MLJsonResult { msg = Resources.Message.SaveFailure, success = false }); 17 } 18 }
3.webForm下 js還是同第二個相同
后台好像是Request.Form來接受數據吧,沒用過,待百度..