Layanan AJAX Menggunakan Sampel Jenis Kompleks

Sampel ComplexTypeAjaxService menunjukkan cara menggunakan Windows Communication Foundation (WCF) untuk membuat layanan ASP.NET Asinkron JavaScript dan XML (AJAX) yang membuat instans jenis kompleks dan mengirimkannya antara layanan dan klien sebagai JavaScript Object Notation (JSON). Anda dapat mengakses layanan AJAX dengan menggunakan kode JavaScript dari klien browser Web. Sampel ini dibangun pada sampel Layanan AJAX Dasar .

Dukungan AJAX di WCF dioptimalkan untuk digunakan dengan ASP.NET AJAX melalui ScriptManager kontrol. Untuk contoh penggunaan WCF dengan ASP.NET AJAX, lihat Sampel AJAX.

Nota

Prosedur penyiapan dan instruksi build untuk sampel ini terletak di akhir topik ini.

Layanan dalam sampel berikut adalah layanan WCF tanpa kode khusus AJAX. WebGetAttribute Karena atribut tidak diterapkan, kata kerja HTTP default ("POST") digunakan. Layanan memiliki satu operasi, yaitu DoMath, yang menghasilkan tipe kompleks bernama MathResult. Jenis kompleks adalah jenis kontrak data standar, yang juga tidak berisi kode khusus AJAX.

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

Buat titik akhir AJAX pada layanan dengan menggunakan WebScriptServiceHostFactory, sama seperti dalam sampel Layanan AJAX Dasar.

Halaman Web klien ComplexTypeClientPage.aspx berisi kode ASP.NET dan JavaScript untuk memanggil layanan saat pengguna mengklik tombol Lakukan penghitungan di halaman. Kode untuk memanggil layanan membuat isi JSON dan mengirimkannya menggunakan HTTP POST, mirip dengan layanan AJAX Menggunakan sampel HTTP POST .

Setelah panggilan layanan berhasil, Anda dapat mengakses masing-masing anggota data (sum, difference, product dan quotient) pada objek JavaScript yang dihasilkan.

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

Untuk menyiapkan, mengompilasi, dan menjalankan sampel

  1. Pastikan Anda telah melakukan Prosedur Penyiapan One-Time untuk Sampel Windows Communication Foundation.

  2. Bangun solusi ComplexTypeAjaxService.sln seperti yang dijelaskan dalam Membangun Sampel Windows Communication Foundation.

  3. Navigasi ke http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (jangan buka ComplexTypeClientPage.aspx di browser dari direktori proyek).

Lihat juga