다음을 통해 공유


복합 형식 샘플을 사용하는 AJAX 서비스

ComplexTypeAjaxService 샘플에서는 WCF(Windows Communication Foundation)를 사용하여 복잡한 형식의 인스턴스를 만들고 서비스와 클라이언트 간에 JSON(JavaScript Object Notation)으로 보내는 ASP.NET AJAX(비동기 JavaScript 및 XML) 서비스를 만드는 방법을 보여 줍니다. 웹 브라우저 클라이언트에서 JavaScript 코드를 사용하여 AJAX 서비스에 액세스할 수 있습니다. 이 샘플은 기본 AJAX 서비스 샘플을 기반으로 합니다.

WCF의 AJAX 지원은 컨트롤을 통해 ScriptManager ASP.NET AJAX와 함께 사용하도록 최적화되어 있습니다. ASP.NET AJAX에서 WCF를 사용하는 예제는 AJAX 샘플을 참조하세요.

비고

이 샘플에 대한 설치 절차 및 빌드 지침은 이 항목의 끝에 있습니다.

다음 샘플의 서비스는 AJAX 관련 코드가 없는 WCF 서비스입니다. 특성이 WebGetAttribute 적용되지 않으므로 기본 HTTP 동사("POST")가 사용됩니다. 서비스에는 하나의 연산이 있으며, DoMath이 연산은 명명 MathResult된 복합 형식을 반환합니다. 복합 형식은 AJAX 관련 코드가 없는 표준 데이터 계약 형식입니다.

[DataContract]
public class MathResult
{
    [DataMember]
    public double sum;
    [DataMember]
    public double difference;
    [DataMember]
    public double product;
    [DataMember]
    public double quotient;
}

기본 AJAX 서비스 샘플과 마찬가지로 서비스를 사용하여 WebScriptServiceHostFactoryAJAX 엔드포인트를 만듭니다.

클라이언트 웹 페이지 ComplexTypeClientPage.aspx 페이지에서 계산 수행 단추를 클릭할 때 서비스를 호출하는 ASP.NET 및 JavaScript 코드가 포함되어 있습니다. 서비스를 호출하는 코드는 JSON 본문을 생성하고 HTTP POST 샘플을 사용하는 AJAX 서비스와 유사하게 HTTP POST를 사용하여 보냅니다.

서비스 호출이 성공하면 결과 JavaScript 개체의 개별 데이터 멤버(sumdifferenceproductquotient)에 액세스할 수 있습니다.

function onSuccess(mathResult){
     document.getElementById("sum").value = mathResult.sum;
     document.getElementById("difference").value = mathResult.difference;
     document.getElementById("product").value = mathResult.product;
     document.getElementById("quotient").value = mathResult.quotient;
}

샘플을 설정, 빌드 및 실행하려면

  1. Windows Communication Foundation 샘플 에 대한One-Time 설정 절차를 수행했는지 확인합니다.

  2. Windows Communication Foundation 샘플 빌드에 설명된 대로 ComplexTypeAjaxService.sln 솔루션을 빌드합니다.

  3. http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (프로젝트 디렉터리에서 브라우저에서 ComplexTypeClientPage.aspx 열지 않음)으로 이동합니다.

참고하십시오