$.getJson(),$.get()和ContentResult,JsonResult和Json.stringify(),Json.parse()区别以及对应关系

VIew:
1
@section scripts{ 2 <script type="text/javascript"> 3 $(function () { 4 LoadData1(); 5 LoadData2(); 6 LoadData3(); 7 PostData(); 8 }); 9 //如果不使用getJson方法获取数据,而返回的是JsonResult的情况下,这个时候不需要反序列化; 10 function LoadData1() { 11 $.get("/Home/T1", function (data) { 12 $("#Demo1")[0].innerText = data.name + ' ' + data.age; 13 }); 14 }; 15 //如果不使用getJson方法获取数据,在返回的是ContentResult的情况下,需要反序列化返回值,因为返回的是一个字符串; 16 function LoadData2() { 17 $.get("/Home/T2", function (data) { 18 var $data = JSON.parse(data); 19 $("#Demo2")[0].innerText = $data.name + ' ' + $data.age; 20 }); 21 }; 22 //LoadData3和LoadData2的Action是一样,但前端实现少了序列化,因为在这里Jquery调用的是getJson方法 23 function LoadData3() { 24 $.getJSON("/Home/T2", function (data) { 25 $("#Demo2")[0].innerText = $data.name + ' ' + $data.age; 26 }); 27 }; 28 function PostData() { 29 //var obj = new Object(); 30 //obj.Name = 'zmm'; 31 //obj.Age = 32; 32 //obj.Sex = 'femal'; 33 //obj.Marray = 'yes'; 34 35 var obj = { Name: 'zmm', Age: 33, Sex: 'femal', Marray: 'yes' }; 36 37 38 $.post('/Home/T3',{ person: obj } , function (data) { 39 if (data.success) { 40 alert("upload success!!!!!!" + ' ' + data.msg); 41 } 42 else { 43 alert('upload Failer!!'); 44 } 45 }); 46 47 //$.ajax({ 48 // url: '/Home/T3', 49 // type: 'post', 50 // dataType: 'json', 51 // contentType: 'application/json;charset=utf-8', 52 // traditional: true, 53 // success: function (data) { 54 // alert("upload success!!!!!!" + ' ' + data.msg); 55 // }, 56 // data: JSON.stringify({ person: obj }) 57 //}); 58 }; 59 </script> 60 }

Controller:

 1  /// <summary>
 2         /// JsonResult继承自ActionResult,所以JsonResult一定会实现方法ExecuteResult
 3         /// 在这里肯定用到了多态!
 4         /// </summary>
 5         /// <returns></returns>
 6         public ActionResult T1()
 7         {
 8             var data = new { name = "zmm", age = 32 };
 9             return Json(data, JsonRequestBehavior.AllowGet);
10         }
11         /// <summary>
12         /// ContentResult继承自ActionResult,所以Content Result一定会实现方法ExecuteResult
13         /// 在这里肯定也运用到了多态!
14         /// </summary>
15         /// <returns></returns>
16         public ActionResult T2()
17         {
18             var data = new { name = "zmm", age = 32 };
19             var dataStr = Newtonsoft.Json.JsonConvert.SerializeObject(data);
20             return Content(dataStr);
21 
22         }
23 
24         public  ActionResult T3(Person person)
25         {
26             var name = person.Name;
27             var age = person.Age;
28             var sex = person.Sex;
29             var marray = person.Marray;
30             var msg = name + " " + age + " " + sex + " " + marray;
31 
32             var result = new { success = true, msg = msg };
33             return Json(result);
34         }

猜你喜欢

转载自www.cnblogs.com/zoumm/p/12408786.html