Compartilhar via


Exemplo de serviço AJAX usando tipos complexos

O exemplo ComplexTypeAjaxService demonstra como usar o WCF (Windows Communication Foundation) para criar um serviço javaScript e XML (AJAX) assíncrono ASP.NET que cria instâncias de tipos complexos e os envia entre o serviço e o cliente como JSON (JavaScript Object Notation). Você pode acessar um serviço AJAX usando o código JavaScript de um cliente do navegador da Web. Este exemplo se baseia no exemplo básico do Serviço AJAX .

O suporte a AJAX no WCF é otimizado para uso com ASP.NET AJAX por meio do ScriptManager controle. Para obter um exemplo de como usar o WCF com ASP.NET AJAX, consulte os Exemplos do AJAX.

Observação

O procedimento de instalação e as instruções de build para este exemplo estão localizados no final deste tópico.

O serviço no exemplo a seguir é um serviço WCF sem código específico do AJAX. Como o WebGetAttribute atributo não é aplicado, o verbo HTTP padrão ("POST") é usado. O serviço tem uma operação, DoMathque retorna um tipo complexo chamado MathResult. O tipo complexo é um tipo de contrato de dados padrão, que também não contém nenhum código específico do AJAX.

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

Crie um ponto de extremidade de AJAX no serviço usando o WebScriptServiceHostFactory, como no exemplo do Serviço AJAX básico.

A página da Web do cliente ComplexTypeClientPage.aspx contém ASP.NET e código JavaScript para invocar o serviço quando o usuário clicar no botão Executar cálculo na página. O código para invocar o serviço constrói um corpo JSON e o envia usando HTTP POST, semelhante ao serviço AJAX usando o exemplo HTTP POST .

Depois que a chamada de serviço for bem-sucedida, você poderá acessar os membros de dados individuais (sumdifferenceproducte quotient) no objeto JavaScript resultante.

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;
}

Para configurar, compilar e executar o exemplo

  1. Verifique se você executou o Procedimento de instalação avulsa dos exemplos do Windows Communication Foundation.

  2. Crie a solução ComplexTypeAjaxService.sln conforme descrito na criação dos exemplos do Windows Communication Foundation.

  3. Navegue até http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (não abra ComplexTypeClientPage.aspx no navegador do diretório do projeto).

Consulte também