Membuat Cascading Dropdown dalam ASP.NET MVC

Saat membangun aplikasi web, memberikan pengalaman pengguna yang halus dan interaktif sangat penting. Salah satu pola antarmuka pengguna yang umum adalah Cascading Dropdown—sebuah menu dropdown yang memperbarui opsinya berdasarkan pemilihan dropdown lain. Fitur ini sangat berguna ketika berurusan dengan himpunan data yang terkait. Dalam postingan blog ini, kita akan menjelajahi cara mengimplementasikan Cascading Dropdown menggunakan ASP.NET MVC dan jQuery.

Memahami Masalah

Anda mungkin bertanya-tanya bagaimana cara membuat Cascading Dropdown dengan efisien dalam aplikasi ASP.NET MVC. Pertanyaan yang sering muncul adalah:

  • Apakah Anda harus membuat solusi Anda dengan jQuery atau bergantung pada toolkit Microsoft AJAX?
  • Apakah Anda lebih baik membuat layanan web atau memanggil aksi kontroler untuk mengembalikan data yang tergantung?

Secara historis, para pengembang telah memiliki berbagai pendekatan untuk mengimplementasikan fitur ini. Namun, dengan jQuery kini terintegrasi ke dalam ASP.NET MVC, metode yang diutamakan cenderung menggunakan jQuery untuk pengalaman yang lebih lancar.

Solusi Langkah-Demi-Langkah

Mari kita bagikan proses ini menjadi bagian-bagian yang jelas dan dapat dikelola untuk memandu Anda dalam mengimplementasikan Cascading Dropdown dalam aplikasi ASP.NET MVC Anda.

1. Siapkan Proyek Anda

Pastikan Anda memiliki proyek ASP.NET MVC yang sudah disetel dengan jQuery disertakan. Anda bisa melakukan ini dengan mudah menggunakan template Visual Studio terbaru.

2. Buat Model Anda

Kita akan membutuhkan beberapa model yang mewakili data yang sedang kita kerjakan. Sebagai contoh, mari kita anggap kita bekerja dengan model Country dan City:

public class Country {
    public int CountryId { get; set; }
    public string CountryName { get; set; }
}

public class City {
    public int CityId { get; set; }
    public string CityName { get; set; }
    public int CountryId { get; set; } // Kunci asing untuk Country
}

3. Aksi Kontroler

Selanjutnya, Anda perlu menyiapkan kontroler Anda untuk menangani permintaan. Buat aksi yang akan mengembalikan daftar negara dan kota berdasarkan negara yang dipilih.

public class LocationController : Controller {
    public JsonResult GetCountries() {
        var countries = // Ambil negara dari database
        return Json(countries, JsonRequestBehavior.AllowGet);
    }
    
    public JsonResult GetCities(int countryId) {
        var cities = // Ambil kota berdasarkan countryId
        return Json(cities, JsonRequestBehavior.AllowGet);
    }
}

4. Membangun Tampilan

Dalam tampilan Anda, Anda perlu menambahkan dua dropdown: satu untuk negara dan satu untuk kota. Mulailah memuat negara ketika tampilan dirender:

<select id="countryDropdown"></select>
<select id="cityDropdown"></select>

5. Mengimplementasikan jQuery untuk Perilaku Dinamis

Sekarang, kita akan menambahkan kode jQuery untuk mengisi dropdown kota berdasarkan negara yang dipilih.

$(document).ready(function() {
    $.getJSON('/Location/GetCountries', function(data) {
        $.each(data, function(index, item) {
            $('#countryDropdown').append($('<option>', { 
                value: item.CountryId,
                text : item.CountryName 
            }));
        });
    });

    $('#countryDropdown').change(function() {
        var countryId = $(this).val();
        $.getJSON('/Location/GetCities?countryId=' + countryId, function(data) {
            $('#cityDropdown').empty(); // Hapus opsi yang ada
            $.each(data, function(index, item) {
                $('#cityDropdown').append($('<option>', { 
                    value: item.CityId,
                    text : item.CityName 
                }));
            });
        });
    });
});

Kesimpulan

Dengan mengikuti langkah-langkah ini, Anda akan memiliki Cascading Dropdown yang sepenuhnya berfungsi dalam aplikasi ASP.NET MVC Anda. Pendekatan ini meningkatkan pengalaman pengguna dengan secara dinamis memperbarui opsi dropdown yang tergantung berdasarkan pemilihan pengguna, menghilangkan kebutuhan untuk memuat ulang halaman.

Untuk detail sumber daya yang lebih mendalam, pastikan untuk memeriksa posting blog ini, yang menawarkan konteks tambahan tentang nilai-nilai cascading dengan formulir menggunakan jQuery.

Mengimplementasikan Cascading Dropdown tidak hanya membuat aplikasi Anda lebih ramah pengguna tetapi juga menunjukkan kekuatan penggabungan jQuery dengan ASP.NET MVC untuk interaktivitas yang kaya.