ASP.NET MVC DropDownList的使用

一、控制器·

 
 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的错误码。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值