我正在创建一个使用多个存储过程来填充下拉列表的页面。存储过程的参数是前一个下拉列表的选择(即它们需要按顺序运行)。实现此功能的最佳方式是什么?我正在使用 ASP MVC,并且很难将结果传递给视图模型以再次呈现。
问问题
341 次
1 回答
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>
于 2013-01-15T20:13:02.480 回答