Bagikan melalui


Layanan AJAX Menggunakan Sampel Jenis Kompleks

Sampel ComplexTypeAjaxService menunjukkan cara menggunakan Windows Communication Foundation (WCF) untuk membuat layanan JavaScript dan XML (AJAX) Asinkron ASP.NET 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 kontrol ScriptManager. Untuk contoh penggunaan WCF dengan ASP.NET AJAX, lihat Sampel AJAX.

Catatan

Prosedur penyiapan dan petunjuk pembuatan untuk sampel ini terdapat di akhir topik ini.

Layanan dalam sampel berikut adalah layanan WCF tanpa kode khusus AJAX. Karena atribut WebGetAttribute tidak diterapkan, kata kerja HTTP default ("POST") digunakan. Layanan ini memiliki satu operasi, DoMath, yang mengembalikan jenis 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 membangun isi JSON dan mengirimkannya menggunakan HTTP POST, mirip dengan sampel Layanan AJAX Menggunakan 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, membangun, dan menjalankan sampel

  1. Pastikan Anda telah melakukan Prosedur Penyiapan Satu Kali untuk Sampel Windows Communication Foundation.

  2. Bangun solusi ComplexTypeAjaxService.sln seperti yang dijelaskan dalam Membangun Sampel Yayasan Komunikasi Windows.

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

Lihat juga