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
Pastikan Anda telah melakukan Prosedur Penyiapan Satu Kali untuk Sampel Windows Communication Foundation.
Bangun solusi ComplexTypeAjaxService.sln seperti yang dijelaskan dalam Membangun Sampel Yayasan Komunikasi Windows.
Navigasi ke
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx
(jangan buka ComplexTypeClientPage.aspx di browser dari direktori proyek).