* 엔터티 타입/Person 형태로 만들어 봄.




[ResponseText.aspx.cs]




using System;

using System.Web.Services;

 

public partial class Ajax_AspNet_ResponseText : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // Empty

    }

 

    // 개체값 반환 : 02.ObjectValueReturn.htm에서 테스트

    [WebMethod]

    public static Person GetRedPlus()

    {

        // 아래와 같이 했을 때

        // {"d":{"__type":"Person","Name":"홍길동","Age":120,"Male":true}}로 변환됨
        // Ajax쪽에서는 data.d.Name, data.d.Age 식으로 가져감

        return new Person() { Name = "홍길동", Age = 21, Gender = true };

    }

}

 

public class Person

{

    public string Name { get; set; }

    public int Age { get; set; }

    public bool Gender { get; set; }

}

 



-------------------------------------------------------------------------------------

 



[02.ObjectValueReturn.htm]




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>개체값 반환</title>

    <script src="../../js/jquery-1.3.2-vsdoc2.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function () {

            $.ajax({

                type: "post",

                url: "ResponseText.aspx/GetRedPlus",

                data: "{}",

                contentType: "application/json; charset=utf-8",

                dataType: "json",

                success: function (data) {

                    var result = data.d;

                   

                    var type = result.__type; // "Person"

                    var name = result.Name; // "홍길동"

                    var age = result.Age; // 21

                    var male = result.Gender; // true

                   

                    debugger; // IE : 여기서 멈춤, 디버깅 창 출력(옵션에서 디버깅 사용시)

                },

                error: function (data) { alert('에러 발생'); }

            });

        });

    </script>

</head>

<body>

 

</body>

</html>





-------------------------------------------------------------------------------------




[실행결과]













--> 체크박스 '체크해제'함.






















 

* 위의 그림처럼 "스크립트 디버깅 사용 안함"을 "체크해제"하면 프로그램 개발시에 매번 디버깅 동작이 수행되어 번거로우므로, "스크립트 디버깅 사용 안함"을 체크하여 '스크립트 디버깅'이 매번 수행되는 것을 방지한다.(여기서도 실행 후에 다시 "스크립트 디버깅 사용 안함"을 체크하여 '스크립트 디버깅'이 매번 수행되는 것을 해제한다.)







Posted by holland14
: