ASP.NET MVC 3 와 Ajax 를 통한 JSON 통신 by Sikuru

ASP.NET MVC 3 부터는 JSON 을 통한 연동 부분이 매우매우 편리해진 덕에 이런 간단한 코드로 연동 코드가 가능...
친절하게도 배열로 된 JSON 오브젝트는 List 컨테이너에 담아주기까지 하고, 같은 이름을 가진 클래스에 맵핑까지 해준다. (대소문자 구분 안함)


* Javascript 코드
  1
$("#button1").click(function()
  2 {
  3     // 테스트 JSON 오브젝트 배열.
  4     var obj = [{
  5         name: "sikuru ?",
  6         uid: 49392010,
  7     }, {
  8         name: "시쿠루 ?",
  9         uid: 49392011,
 10     }];
 11
 12     $.ajax({
 13         url: "/TestService/Method1",
 14         type: "POST",
 15         data: JSON.stringify(obj),
 16         contentType: "application/json; charset=utf-8",    // 이걸 빼먹으니 인식이 안되더라...
 17         success: function (data){
 18             var output_data = "";
 19             for (var item in data)
 20             {
 21                 for (var key in data[item])
 22                 {
 23                     if (key == "Time")
 24                     {
 25                         // 뭔가 이상해보이기도 하지만... JSON 에 넘어온 시간값을
 26                         // Javas-ript 의 Date 객체로 전환하는 방법 중 하나... 근데 이래도 되나 ?
 27                         var date = new Date(parseInt(data[item][key].substr(6))); 
 28                         output_data += "KEY=" + key + " / DATE_VALUE=" + date + "<br>";
 29                     }
 30                     else
 31                     {
 32                         output_data += "KEY=" + key + " / VALUE=" + data[item][key] + "<br>";
 33                     }
 34                 }
 35             }
 36
 37             $("#output1").append(output_data);
 38         }
 39     });
 40 });

* C# ASP.NET MVC 3 코드
  1 public class TestData1
  2 {
  3     public string Name { getset; }
  4     public long UID { getset; }
  5     public string ID { getset; }
  6     public DateTime Time { getset; }
  7 }
  8
  9 public class TestServiceController : Controller
 10 {
 11     [HttpPost]
 12     public ActionResult Method1(List<TestData1> recv_data)
 13     {
 14         List<TestData1> data = new List<TestData1>();
 15         data.Add(new TestData1()
 16         {
 17             Name = "이름",
 18             UID = long.MaxValue,
 19             ID = "sikuru",
 20             Time = DateTime.Now,
 21         });
 22
 23         return Json(data, JsonRequestBehavior.DenyGet);
 24     }
 25 }

공유하기 버튼

 
싸이월드 공감트위터페이스북

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://whiteberry.egloos.com/tb/3791579 [도움말]