ASP.NET MVC中的依赖下拉列表

时间:2017-12-08 15:45:04

标签: c# asp.net-mvc asp.net-mvc-4 dropdown

目前我有两张桌子(团队和员工) 我正在为团队填充dropdownList,接下来我试图填充第二个下拉列表,具体取决于员工团队的selectedId。

控制器:

 // GET: CalView
        public ActionResult Index(string ses, string DH)
        {     //Team Lead Members
                var eID = Convert.ToInt32(Session["currentEmployeeID"]);
                var EmpID = Session["currentEmpID"];
                Employee obj = (from o in db.Employees
                                where o.EnrollNumber == EmpID
                                select o).FirstOrDefault();

                Department dept = (from dep in db.Departments
                                   where dep.LeadBy == obj.EmployeeId
                                   select dep).FirstOrDefault();
                //this works fine
                ViewBag.showTeams = new SelectList(db.Teams.Where(tm => (tm.DeptID == dept.DepartmentId) && (dept.LeadBy == eID)), "TeamID","Name");
               //this obviously does not
                ViewBag.showMembers = new SelectList(db.Employees.Where(empt => (empT.TeamID == selectedIdFromPreviousDropDownList), "EmployeeID", "Employee"));

                return View();
        }

查看:

if ((Session["UT"] == "DD") && (@ViewBag.DeptLead != null))
  {
//this works
  @Html.DropDownList("showTeams", null, "-Select Team-", htmlAttributes: new { @class = "form-control" })
//this does not work
  @Html.DropDownList("showMembers", null, "-Select Team-", htmlAttributes: new { @class = "form-control" })
   }

我需要一些AJAX电话吗?或者也许是POST方法?完全是MVC的新手。

1 个答案:

答案 0 :(得分:5)

我需要一些AJAX电话吗?或者也许是POST方法?那么,让我们这样做:

可能会给你的DropdownLists一些id:

GetMembers

在那里创建一个jsonResult函数<script type="text/javascript"> $(document).ready(function () { //Dropdownlist Selectedchange event $("#ddshowTeams").change(function () { console.log("pehla andar"); $("#ddshowMembers").empty(); $.ajax({ type: 'POST', url: '@Url.Action("GetMembers")', dataType: 'json', data: { id: $("#ddshowTeams").val() }, success: function (mems) { console.log("wich ayaeee"); // states contains the JSON formatted list // of states passed from the controller $.each(mems, function (i, member) { $("#ddshowMembers").append('<option value="' + member.Value + '">' + member.Text + '</option>'); }); }, error: function (ex) { alert('Failed to retrieve states.' + ex); } }); return false; }) }); </script> 和一些Magic:

 public JsonResult GetMembers(int id)
        {
            return Json(new SelectList(db.Employees.Where(empt => (empt.TeamId == id)), "EmployeeID", "FirstName"));
        }

并在您的控制器中:

npm install firebase angularfire2 --save