0
我正在嘗試創建級聯下拉列表。我的控制器看起來像這樣來初始化視圖..動態填充選擇列表MVC
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個空下拉預期。
現在選擇第一個下拉列表,我想調用我的控制器中的Action來填充第二個下拉列表。這是我在填充第二個下拉列表的動作中的代碼有點模糊。我想用這樣的觸發調用動作..
$("#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??
}
的東西是它很好的做法,把雙方如果在我的控制器這些方法?或者應該把私人方法放在其他地方..試圖在使用mvc時學習好的實踐嗎? – MTL323 2013-03-04 00:45:35
我剛貼上剪切和粘貼的樣本。如果是我。我只是將它全部納入行動。你也可以看看有一個你用來返回這些東西的選擇列表服務。如果你經常這樣做。或者,您可以查看返回Json的WebAPI。我們使用WebAPI來處理所有Json的東西 – GraemeMiller 2013-03-04 00:46:50
你能指點我的例子嗎?我點擊控制器,但是當我回到JavaScript時,返回的JSON格式不正確,無法填充選擇列表。它返回這個名稱爲「」System.Data.Entity.DynamicProxies.Course_C81CDD1DDC4D486F471F64D1F95990CD3518507F0B5BB9F718C0910A56B73D12「」和每個課程的Value = null。來自控制器的數據是正確的,並正確查詢,所以它有問題,我的JavaScript代碼 – MTL323 2013-03-04 01:30:25