如何将值设置为下拉列表

时间:2019-09-24 09:21:39

标签: c# jquery asp.net-mvc-5 html-helper

我正在使用jQuery在选择第一个下拉列表时设置第二个下拉列表项。在进行编辑操作时,我要将获取的数据设置为第二个下拉列表。我想将ViewBag.UserLinkedList设置为第二个下拉列表。

View:
        <div class="form-row">
          <div class="col-lg-7">
            @Html.Label("User Type") @Html.DropDownListFor(m => m.LoginUserTypeID(SelectList)ViewBag.LoginUserTypeList, "--- Select User Type ---", new { @class = "form-control" })
          </div>
        </div>
        <div class="form-row">
          <div class="col-lg-7">
            @Html.Label("Parent User") @Html.DropDownListFor(m => m.UserLinkedID, new SelectList(""), "--- Select ---", new { @class = "form-control" })
          </div>
    <script>

        $(document).ready(function() {
          $("#LoginUserTypeID").change(function() {
            $.get("/User/GetParentUserList", {
              UserTypeID: $("#LoginUserTypeID").val()
            }, function(data) {
              $("#UserLinkedID").empty();
              $.each(data, function(index, row) {
                $("#UserLinkedID").append("<option value='" + row.Id + "'>" + row.Name + "</option>")
              });
            });
          })
        });

    </script>

控制器:

public JsonResult GetParentUserList(int UserTypeID)
{
  List<V_Dealer_DealerEmployee> LinkedIDList = new List<V_Dealer_DealerEmployee>();
  if (UserTypeID == 1 || UserTypeID == 2)
  {
    var d = from s in db.VDNSEmployeeMaster
              select new
              {
                Id = s.EmpId,
                Name = s.FirstName + " " + s.MiddleName + " " + s.LastName
              };
    d.ToList();
    return Json(d.ToList(), JsonRequestBehavior.AllowGet);
  }
  else
  {
    var unionAll = (from word in db.VDNSDealer select new 
    { 
      Id = word.m_code, 
      Name = word.institute_name 
    }).Concat(from word in db.DealerEngineerMaster select new { 
      Id = word.EnggId, 
      Name = word.EngineerName 
    });
    return Json(unionAll.ToList(), JsonRequestBehavior.AllowGet);
  }
}

编辑操作

    public ActionResult Edit(int id)
    {
var user = db.Users.SingleOrDefault(c => c.Id == id);
if (user == null)
  return HttpNotFound();

List<LoginUserType> LoginUserTypeList = db.LoginUserType.ToList();
ViewBag.LoginUserTypeList = new SelectList(LoginUserTypeList, "UserTypeId", "UserTypeName");
List<V_Dealer_DealerEmployee> UserLinkedList = db.VDealerDealerEmployee.ToList();
ViewBag.UserLinkedList = new SelectList(UserLinkedList, "Id", "Name");

    return View("New", user);
    }

1 个答案:

答案 0 :(得分:1)

edit操作返回视图后,您需要调用change的{​​{1}}函数。这是您所需的js

LoginUserTypeID

试试看!我认为这会起作用。如果没有评论,请PLZ