การสร้าง Cascading Dropdown ใน ASP.NET MVC
เมื่อสร้างแอปพลิเคชันเว็บ การให้ประสบการณ์ผู้ใช้ที่ราบรื่นและมีปฏิสัมพันธ์เป็นสิ่งสำคัญ รูปแบบส่วนติดต่อผู้ใช้ทั่วไปหนึ่งคือ Cascading Dropdown—เมนูดรอปดาวน์ที่ปรับปรุงตัวเลือกตามการเลือกของดรอปดาวน์อีกอัน คุณสมบัตินี้มีประโยชน์โดยเฉพาะเมื่อจัดการกับชุดข้อมูลที่เกี่ยวข้อง ในบล็อกโพสต์นี้ เราจะสำรวจวิธีการใช้งาน Cascading Dropdown โดยใช้ ASP.NET MVC และ jQuery
การเข้าใจปัญหา
คุณอาจสงสัยว่าจะสร้าง Cascading Dropdown ในแอปพลิเคชัน ASP.NET MVC ได้อย่างมีประสิทธิภาพอย่างไร คำถามมักเกิดขึ้น เช่น:
- ควรสร้างโซลูชันของคุณด้วย jQuery หรือพึ่งพา Microsoft AJAX toolkit?
- คุณควรสร้างบริการเว็บหรือเรียกการดำเนินการของคอนโทรลเลอร์เพื่อคืนค่าข้อมูลที่เกี่ยวข้องหรือไม่?
ในอดีต นักพัฒนามีวิธีการที่หลากหลายในการใช้งานฟีเจอร์นี้ อย่างไรก็ตาม การที่ jQuery ได้ถูกบูรณาการเข้ากับ ASP.NET MVC ทำให้วิธีการที่ชื่นชอบไปในทิศทางการใช้ jQuery เพื่อประสบการณ์ที่เรียบง่ายขึ้น
วิธีการที่เป็นขั้นตอน
มาลดขั้นตอนนี้ให้เป็นส่วนที่ชัดเจนและจัดการได้ง่ายเพื่อแนะนำคุณในการใช้งาน Cascading Dropdown ในแอปพลิเคชัน ASP.NET MVC ของคุณ
1. ตั้งค่าโครงการของคุณ
ตรวจสอบให้แน่ใจว่าคุณมีโครงการ ASP.NET MVC ที่ติดตั้ง jQuery แล้ว คุณสามารถทำได้ง่าย ๆ ด้วยเทมเพลต Visual Studio ล่าสุด
2. สร้างโมเดลของคุณ
เราจะต้องมีโมเดลสองตัวที่แทนข้อมูลที่เรากำลังทำงานอยู่ ตัวอย่างเช่น สมมติว่าเรากำลังทำงานกับโมเดล Country
และ 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; } // Foreign key to the Country
}
3. การดำเนินการของคอนโทรลเลอร์
ถัดไป คุณจะต้องตั้งค่าคอนโทรลเลอร์ของคุณเพื่อจัดการกับคำขอ สร้างการดำเนินการที่คืนค่ารายการประเทศและเมืองตามประเทศที่เลือก
public class LocationController : Controller {
public JsonResult GetCountries() {
var countries = // ดึงประเทศจากฐานข้อมูลของคุณ
return Json(countries, JsonRequestBehavior.AllowGet);
}
public JsonResult GetCities(int countryId) {
var cities = // ดึงเมืองตาม countryId
return Json(cities, JsonRequestBehavior.AllowGet);
}
}
4. สร้างมุมมอง
ในมุมมองของคุณ คุณจะต้องเพิ่มดรอปดาวน์สองรายการ: หนึ่งสำหรับประเทศและอีกหนึ่งสำหรับเมือง เริ่มโหลดประเทศเมื่อมุมมองถูกเรนเดอร์:
<select id="countryDropdown"></select>
<select id="cityDropdown"></select>
5. การใช้งาน jQuery สำหรับพฤติกรรมเชิงพาณิชย์
ตอนนี้เราจะเพิ่มโค้ด jQuery เพื่อเติมดรอปดาวน์เมืองตามประเทศที่เลือก
$(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(); // ล้างตัวเลือกที่มีอยู่
$.each(data, function(index, item) {
$('#cityDropdown').append($('<option>', {
value: item.CityId,
text : item.CityName
}));
});
});
});
});
สรุป
โดยการทำตามขั้นตอนเหล่านี้ คุณจะมี Cascading Dropdown ที่ทำงานได้อย่างสมบูรณ์ในแอป ASP.NET MVC ของคุณ วิธีการนี้ช่วยเพิ่มประสบการณ์ผู้ใช้โดยการปรับปรุงตัวเลือกดรอปดาวน์ที่เกี่ยวข้องตามการเลือกของผู้ใช้ โดยไม่ต้องโหลดหน้าใหม่
สำหรับรายละเอียดทรัพยากรที่ลึกซึ้งยิ่งขึ้น อย่าลืมตรวจสอบ บล็อกโพสต์นี้ ซึ่งนำเสนอบริบทเพิ่มเติมเกี่ยวกับค่า cascading ด้วยฟอร์มโดยใช้ jQuery
การใช้งาน Cascading Dropdown
ไม่เพียงแต่ทำให้แอปพลิเคชันของคุณมีความเป็นมิตรต่อผู้ใช้มากขึ้น แต่ยังแสดงให้เห็นถึงพลังของการรวม jQuery กับ ASP.NET MVC เพื่อการทำงานร่วมกันที่สมบูรณ์แบบ