본문 바로가기
개발언어/ASP.NET

[jQuery] ASP.NET MVC & JSON 웹 응용프로그램 만들기

by 엔돌슨 2012. 8. 31.
반응형
[jQuery] ASP.NET MVC & JSON 웹 응용프로그램 만들기


머리말 

JSON(Javascript Object Notation) 은 이름 그대로 자바스크립트에서 객체를 표현하는 방법 입니다.

ASP.NET MVC 는 마이크로소프트에서 만든 서버 개발 프레임워크 입니다. MVC(Model-View-Controller) 패턴을 따릅니다. MVC 패턴을 이루는 요소는 모델, 뷰, 컨트롤러 입니다.



시작하기 




ASP.NET MVC3 의 응용프로그램을 생성한다. HomeController.cs 파일에서 마우스 우측을 하여 뷰를 추가한다. 



생성을 하면 /View/Home/Index.cshtml 의 파일이 생성돼 있습니다. 이것은 HomeController 클래스의 Index() 메서드 위치와 일치합니다.




        public ActionResult MyFirstStringAction()

        {

            return Content("<h1>Hello ASP.NET MVC</h1>");

        }


http://localhost:4474/home/MyFirstStringAction 로 접속하면 수행결과를 확인 할 수 있습니다.

간단한 html 태그를 제공하는 웹 서비스를 만들어 보았습니다. 액션  MyFirstStringAction 을 만들고 문자열을 Content() 매서드에 매개 변수로 넣어 리턴합니다.



JSON 웹서비스만들기 

 

        public ActionResult MyFirstJsonAction()

        {

            var willReturn = new { name = "제시카", gender = "여자", part = "보컬" };

            return Json(willReturn, JsonRequestBehavior.AllowGet);

        }


객체를 만들고 Json() 메서드를 사용하여 리턴합니다. 

리턴결과
http://localhost:4474/home/ MyFirstJsonAction  로 접속하면 수행결과를 확인 할 수 있습니다. 
{"name":"제시카","gender":"여자","part":"보컬"}



XML 웹서비스 만들기



        public ActionResult MyFirstXMLAction()

        {

            var willReturn = "";

            willReturn += "<people>";

            willReturn += "     <person>";

            willReturn += "         <name>제시카</name>";

            willReturn += "         <gender>여자</gender>";

            willReturn += "         <part>보컬</part>";

            willReturn += "     </person>";

            willReturn += "     <person>";

            willReturn += "         <name>이하니</name>";

            willReturn += "         <gender>여자</gender>";

            willReturn += "         <part>미스코리아</part>";

            willReturn += "     </person>";

            willReturn += "     <person>";

            willReturn += "         <name>강호동</name>";

            willReturn += "         <gender>남자</gender>";

            willReturn += "         <part>MC</part>";

            willReturn += "     </person>";

            willReturn += "</people>";

            return Content(willReturn, "text/xml");

        }


JSON 만들때 보다 어렵거나 복잡하지 않다.



요청 매개변수 처리 



        public ActionResult ActionWithData()

        {

            var name = Request["name"];

            var age = Request["age"];

            return Content("<h1>" + name + ":" + age + "</h1>");

        }


프로젝트 실행시 : http://localhost:4474/home/ActionWithData?name=parkkwangho&age=31

name과 age의 값을 전송하여 주어야 합니다.



실제로 호출하여 사용하기 



Index.cshtml 소스코드

@{ Layout = null; }

<!DOCTYPE html>

<html>

<head>

    <title>Index</title>

    <script>

        var request = new XMLHttpRequest();

        request.open('GET', '/HOME/ActionWithData?name=parkkwangho&age=31', false);


        //Ajax 를 수행

        request.send();


        //출력

        alert(request.responseText);

    </script>

</head>

<body>

    

</body>

</html>


실행결과는 전송한 name, age 에 따라서 리턴된 값을 확인할 수 있다. 


모든 브라우저에서 동작하는 Ajax 요청 만들기


    <script>

        // XMLHttpRequest 객체를 생성하는 함수

        // 현존하는 모든 브라우저에서 동작합니다.

        function createRequest() {

            var request;

            try {

                request = new XMLHttpRequest();

            } catch (exception) {

                try {

                    request = new ActiveXObject('Msxml2.XMLHTTP');

                } catch (innerException) {

                    request = new ActiveXObject('Microsoft.XMLHTTP');

                }

            }

            return request;

        }


        // 페이지 로드시 수행

        window.onload = function () {

            // 객체를 생성

            var request = new createRequest();

            request.open('GET', '/HOME/ActionWithData?name=parkkwangho&age=31', false);


            //Ajax 를 수행

            request.send();


            //출력

            alert(request.responseText);

        }

    </script>




마무리


다음에는 동기방식과 비동기 방식으로 구현하는 것을 해보자!~

2012/09/03 - [개발언어/ASP.NET] - jQuery 비동기 처리