欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ASP.NET MVC DropDownList的使用

程序员文章站 2022-03-04 13:02:21
...

一、控制器·


 public ActionResult Index()
        {
            if (ViewBag.courseID != null)
            {
            }
            else
            {
                ViewBag.studentID = new SelectList(db.Students,"ID","LastName");
                ViewBag.courseID = new SelectList(db.Courses, "CourseID", "Title");
            }
            return View();
        }

二、Ajax

(1)服务器

        public ActionResult DDL(int studentID)
        {
            //string a = studentID;
            //var courseID = db.Enrollments.Where(s => s.StudentID == studentID).Select(s=>s.CourseID);
            //foreach (var cid in courseID)
            //{
            //    var course = db.Courses.Where(s => s.CourseID == cid);
            //    IEnumerable<>
            //}
            //var q = from a in db.Enrollments
            //        join b in db.Students on a.StudentID equals studentID
            //        join c in db.Courses on a.CourseID equals c.CourseID
            //        group new {
            //           c=c
            //        } by c.CourseID into  g
            //        select new
            //        {

            //            CourseID = g.Key,
            //            Title = g.FirstOrDefault,
            //        };

            var q = from a in db.Enrollments
                    from b in db.Students
                    from c in db.Courses
                    where a.StudentID == studentID && a.CourseID == c.CourseID
                    select new
                    {

                        CourseID = c.CourseID,
                        Title = c.Title
                    };
            var result=q.Distinct().ToList();//去重Distinct()

            //return RedirectToAction("Index");
            return Json(q.Distinct().ToList());
        }
(2)前端
    @using (Html.BeginForm("DDL", "Home"))
    {
    @Html.Label("课程:")
        @*@Html.DropDownList("courseID")*@
    @Html.DropDownList("studentID")
    @Html.DropDownList("courseID",ViewBag.Course as IEnumerable<SelectListItem>, "请选择课程")
        <input type="submit"value="提交" />
    }
  <script type="text/javascript">
        //$(function () {
        //    $("#courseID").change(function () {
        //        alert(this.id)
        //    })
        //})
       
        //$(function () {
        //    $("#courseID").change(function () {
        //        alert($("#courseID").val())
        //        //alert(this.val())
        //    })
        //})


        //var value=$("#courseID").val();
        //alert(value);


        $(function () {
            $("#studentID").change(function () {
                $.ajax({
                    url: "@Url.Action("DDL","Home")" + "?studentID= " + $(this).val(),
                    type: 'POST',
                    data: null,
                    dataType: "json",
                    success: function (data) {
                        $("#courseID").empty();
                      //  $("#courseID").append("<option value=0>Ajax</option>")
                        var json = eval(data); //数组
                        $.each(json, function (index, item) {
                            //循环获取数据    
                            var CourseID = json[index].CourseID;
                            var Title = json[index].Title;
                            //  $("#list").html($("#list").html() + "<br>" + name + " - " + idnumber + " - " + sex + "<br/>");
                            $("<option value='" + CourseID + "'>" + Title + "</option>").appendTo("#courseID");
                        });
                    }
                });
            });
        });


    </script>
    @Html.DropDownList("studentID"),studentID即为ViewBag.studentID,studentID也是下拉框的id,下拉框的Value和Text会自动填充。

    @Html.DropDownList("courseID",ViewBag.Course as IEnumerable<SelectListItem>, "请选择课程"),第一个参数是下拉框的id,第二个即ViewBag.Course,第三个参数为下拉框Text默认值。

Linq To SQL三张表联结查询,Distinct()去重。

JQuery Ajax语法,使用Ajax实现DropDownList两级联动,在ASP.NET MVC中Ajax最好使用POST方式,否则会报500的错误码。