Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
En el ejemplo ComplexTypeAjaxService se muestra cómo usar Windows Communication Foundation (WCF) para crear ASP.NET un servicio de JavaScript y XML asincrónico asincrónico (AJAX) que crea instancias de tipos complejos y las envía entre el servicio y el cliente como Notación de objetos JavaScript (JSON). Puede acceder a un servicio AJAX mediante código JavaScript desde un cliente del explorador web. Este ejemplo se basa en el ejemplo de servicio AJAX básico .
La compatibilidad con AJAX en WCF está optimizada para su uso con ASP.NET AJAX a través del ScriptManager control . Para obtener un ejemplo de uso de WCF con ASP.NET AJAX, consulte los ejemplos de AJAX.
Nota:
El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.
El servicio del ejemplo siguiente es un servicio WCF sin código específico de AJAX. Dado que el WebGetAttribute atributo no se aplica, se usa el verbo HTTP predeterminado ("POST"). El servicio tiene una operación, , DoMathque devuelve un tipo complejo denominado MathResult. El tipo complejo es un tipo de contrato de datos estándar, que tampoco contiene código específico de AJAX.
[DataContract]
public class MathResult
{
[DataMember]
public double sum;
[DataMember]
public double difference;
[DataMember]
public double product;
[DataMember]
public double quotient;
}
Cree un punto de conexión AJAX en el servicio usando WebScriptServiceHostFactory, tal como en el ejemplo de servicio AJAX básico.
La página web del cliente ComplexTypeClientPage.aspx contiene ASP.NET y código javaScript para invocar el servicio cuando el usuario hace clic en el botón Realizar cálculo de la página. El código para invocar el servicio construye un cuerpo JSON y lo envía mediante HTTP POST, similar al servicio AJAX mediante el ejemplo HTTP POST .
Una vez que la llamada al servicio se realiza correctamente, puede acceder a los miembros de datos individuales (sum, differencey productquotient) en el 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 y ejecutar el ejemplo
Asegúrese de que ha realizado el procedimiento de instalación única para los ejemplos de Windows Communication Foundation.
Compile la solución ComplexTypeAjaxService.sln como se describe en Creación de ejemplos de Windows Communication Foundation.
Vaya a
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx(no abra ComplexTypeClientPage.aspx en el explorador desde el directorio del proyecto).