2013-01-15 34 views
0

我正在創建一個使用多個存儲過程來填充下拉列表的頁面。存儲過程的參數是前一個下拉列表的選擇(即它們需要按順序運行)。什麼是實現此功能的最佳方式?我正在使用ASP MVC,並且很難將結果傳遞給視圖模型以再次呈現。多個存儲過程ASP MVC

回答

0

如果我正確理解你的問題,你正試圖有級聯下拉。 並且您使用存儲過程綁定您的下拉列表。

下面是一個例子:我有兩個下拉菜單。學校和課程。當你在學校改變選定的價值時,課程下拉將改變它的價值。

這是控制器:

public ActionResult SchoolList(int id) 
    { 
     IEnumerable<SelectListItem> schools = new Util().GetSchoolSelectList(id); 
     if (HttpContext.Request.IsAjaxRequest()) 
      return Json(schools, JsonRequestBehavior.AllowGet); 

     return View(schools); 
    } 

    public ActionResult CourseList(int id) 
    { 
     IEnumerable<SelectListItem> courses = new Util().GetCourseSelectList(id); 
     if (HttpContext.Request.IsAjaxRequest()) 
      return Json(courses, JsonRequestBehavior.AllowGet); 
     return View(courses); 
    } 

這是jQuery的:

$("#Schools").change(function() { 
     $.getJSON("/Account/CourseList/" + $("#Schools").val(), function (data) { 
      var items = "<option>Select your Course</option>"; 
      $.each(data, function (i, course) { 
       items += "<option value='" + course.Value + "'>" + course.Text + "</option>"; 
      }); 
      $("#Courses").html(items); 
     }); 
    }); 

這是HTML:

<select id="Schools" name="UserSchool"></select> 

<select id="Courses" name="UserCourse"></select>