Asp.net mvc 剑道MVC级联下拉列表问题

Asp.net mvc 剑道MVC级联下拉列表问题,asp.net-mvc,asp.net-mvc-4,kendo-asp.net-mvc,cascadingdropdown,Asp.net Mvc,Asp.net Mvc 4,Kendo Asp.net Mvc,Cascadingdropdown,我正在使用KendoUIASP.NETMVC,我想用它做一个级联下拉列表。我在第三个下拉列表中遇到问题,该列表显示数据库中的所有值,而不是第二个下拉列表中选择的id值 我的控制器代码:- public ActionResult CDropdown() { return View(); } public JsonResult GetCascadeDept() { return Json(db.DeptData.Select(c => new { DepartmentID =

我正在使用KendoUIASP.NETMVC,我想用它做一个级联下拉列表。我在第三个下拉列表中遇到问题,该列表显示数据库中的所有值,而不是第二个下拉列表中选择的id值

我的控制器代码:-

public ActionResult CDropdown()
{
    return View();
}
public JsonResult GetCascadeDept()
{
    return Json(db.DeptData.Select(c => new { DepartmentID = c.DepartmentID, DepartmentName = c.DepartmentName }), JsonRequestBehavior.AllowGet);
}

public JsonResult GetCascadeEmployee(int? Departmets)
{
    var empdata = db.EmpData.AsQueryable();
    if (Departmets != null)
    {
        empdata = empdata.Where(p => p.DepartmentID == Departmets);
    }
    return Json(empdata.Select(p => new { EmployeeID = p.EmployeeID, EmpName = p.EmpName }), JsonRequestBehavior.AllowGet);
}

public JsonResult GetCascadeMovies(int? Employees)
{
    var d = from c in db.EmpMovies orderby c.MovieName select c;
    var moviedata = db.EmpMovies.AsQueryable();
    if (Employees != null)
    {
        int cat = Convert.ToInt32(Employees);
        moviedata = moviedata.Where(p => p.EmployeeID == Employees);
    }
    return Json(moviedata.Select(p => new { MovieId = p.MovieId, MovieName = p.MovieName }), JsonRequestBehavior.AllowGet);
}   
我的视图代码:-

<div>
    <p>
        <label for="Departmets">Department :- </label>
        @(Html.Kendo().DropDownList()
              .Name("Departmets")
              .HtmlAttributes(new { style = "width:300px" })
              .OptionLabel("-- Select Department --")
              .DataTextField("DepartmentName")
              .DataValueField("DepartmentID")
              .DataSource(source =>
              {
                  source.Read(read =>
                  {
                      read.Action("GetCascadeDept", "Home");
                      //.Data("FilterDepartmets");
                  })
                  .ServerFiltering(true);
              })
              .SelectedIndex(0)
        )
    </p>
    <p>
        <label for="Employees">Employee :- </label>
        @(Html.Kendo().DropDownList()
              .Name("Employees")
              .HtmlAttributes(new { style = "width:300px" })
              .OptionLabel("-- Select Employee --")
              .DataTextField("EmpName")
              .DataValueField("EmployeeID")
              .DataSource(source =>
              {
                  source.Read(read =>
                  {
                      read.Action("GetCascadeEmployee", "Home")
                      .Data("FilterEmployees");
                  })
                  .ServerFiltering(true);
              })
              .Enable(false)
              .AutoBind(false)
              .SelectedIndex(0)
              .CascadeFrom("Departmets")
        )
        <script type="text/javascript">
            function FilterEmployees() {
                return {
                    Departmets: $("#Departmets").val()
                };
            }
        </script>
    </p>
    <p>
        <label for="Movies">Movie Names :- </label>
        @(Html.Kendo().DropDownList()
              .Name("Movies")
              .HtmlAttributes(new { style = "width:300px" })
              .OptionLabel("-- Select Movie --")
              .DataTextField("MovieName")
              .DataValueField("MovieId")
              .DataSource(source =>
              {
                  source.Read(read =>
                  {
                      read.Action("GetCascadeMovies", "Home")
                      .Data("FilterMovies");
                  })
                  .ServerFiltering(true);
              })
              .Enable(false)
              .AutoBind(false)
              .SelectedIndex(0)
              .CascadeFrom("Employees")
        )

        <script type="text/javascript">
            function FilterMovies() {
                return {
                    Movies: $("#FilterMovies").val()
                };
            }
        </script>
    </p>
</div>
我使用的是Kendo UI ASP MVC下拉列表-第三个下拉列表显示了表中的所有值-ID无法获取。我不知道为什么会这样。有解决方案吗?

您的FilterMovies函数中有一个错误。您希望按所选员工筛选电影,因此函数应如下所示。请注意,不同的属性名称为movies->Employees,以及不同的$selector FilterMovies->Employees:

希望这有帮助。

您的FilterMovies函数中有一个错误。您希望按所选员工筛选电影,因此函数应如下所示。请注意,不同的属性名称为movies->Employees,以及不同的$selector FilterMovies->Employees:


希望这有帮助。

刚刚更改了视图中的第三个下拉列表:-

<p>
    <label for="Movies">Movie Names :- </label>
    @(Html.Kendo().DropDownList()
          .Name("Movies")
          .HtmlAttributes(new { style = "width:300px" })
          .OptionLabel("-- Select Movie --")
          .DataTextField("MovieName")
          .DataValueField("MovieId")
          .DataSource(source =>
          {
              source.Read(read =>
              {
                  read.Action("GetCascadeMovies", "Home")
                  .Data("FilterMovies");
              })
              .ServerFiltering(true);
          })
          .Enable(false)
          .AutoBind(false)
          .SelectedIndex(0)
          .CascadeFrom("Employees")
    )
    <script type="text/javascript">
        function FilterMovies() {
            return {
                Employees: $("#Employees").val()
            };
        }
    </script>
</p>

刚刚更改了视图中的第三个下拉列表:-

<p>
    <label for="Movies">Movie Names :- </label>
    @(Html.Kendo().DropDownList()
          .Name("Movies")
          .HtmlAttributes(new { style = "width:300px" })
          .OptionLabel("-- Select Movie --")
          .DataTextField("MovieName")
          .DataValueField("MovieId")
          .DataSource(source =>
          {
              source.Read(read =>
              {
                  read.Action("GetCascadeMovies", "Home")
                  .Data("FilterMovies");
              })
              .ServerFiltering(true);
          })
          .Enable(false)
          .AutoBind(false)
          .SelectedIndex(0)
          .CascadeFrom("Employees")
    )
    <script type="text/javascript">
        function FilterMovies() {
            return {
                Employees: $("#Employees").val()
            };
        }
    </script>
</p>

非常感谢您的帮助,先生,它工作得非常完美。非常感谢您的帮助,先生,它工作得非常完美