多个存储过程ASP MVC

时间:2013-01-15 15:27:14

标签: asp.net-mvc stored-procedures

我正在创建一个使用多个存储过程来填充下拉列表的页面。存储过程具有参数,这些参数是先前下拉列表的选择(即,它们需要按顺序运行)。实现此功能的最佳方法是什么?我正在使用ASP MVC,并且很难将结果传递给viewmodel再次渲染。

1 个答案:

答案 0 :(得分: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>