カスケード ドロップダウンを作成しようとしています。私のコントローラーは、ビューを初期化するためにこのように見えます..
public ActionResult Create()
{
var model = new RoundDetailViewModel();
model.AvailableFacilities = new SelectList(db.Facilities, "FacilityId", "Facility_Name");
model.AvailableCourses = new SelectList(Enumerable.Empty<Course>(), "CourseId", "Course_Name");
model.AvailableTeeTypes= new SelectList(Enumerable.Empty<TeeType>(), "TeeTypeId", "Name");
return View(model);
}
これにより、最初のドロップダウンが入力され、予想どおり 2 つの空のドロップダウンも作成されます。
最初のドロップダウンを選択したら、コントローラーでアクションを呼び出して、2 番目のドロップダウンに入力します。これは、2 番目のドロップダウンにデータを入力するアクションのコードが少しわかりにくいところです。このようなものを使用して、アクションの呼び出しをトリガーしたい..
$("#ddlFacility").change(function () {
var selectedFacility = $(this).val();
if (selectedFacility != null && selectedFacility != '') {
$.getJSON("@Url.Action("GetCourse")", { facility: selectedFacility }, function (courses) {
var coursesSelect = $('#ddlCourse');
coursesSelect.empty();
$.each(courses, function (index, course) {
coursesSelect.append($('<option/>', {
value: course.value,
text: course.text
}));
});
});
}
});
public ActionResult Courses(int facilityId)
{
//WHAT GOES HERE TO POPULATE SELECT LIST??
}