0

複数のストアド プロシージャを使用してドロップダウン リストを設定するページを作成しています。ストアド プロシージャには、前のドロップダウン リストで選択したパラメータがあります (つまり、順番に実行する必要があります)。この機能を実装する最良の方法は何ですか? ASP MVC を使用していますが、結果をビューモデルに渡して再度レンダリングするのに苦労しています。

4

1 に答える 1

0

私があなたの質問を正しく理解していれば、カスケード ドロップダウンを使用しようとしています。そして、ストアドプロシージャを使用してドロップダウンをバインドしています..そうですか??

以下に例を示します。2 つのドロップダウンがあります。学校とコース。学校で選択した値を変更すると、コースのドロップダウンの値が変更されます。

これはコントローラーです:

 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 に答える