【问题标题】:Load Dropdownlist value in <select> from controller where value and text are different从值和文本不同的控制器加载 <select> 中的下拉列表值
【发布时间】:2020-02-11 15:46:13
【问题描述】:

大家好,如果我的值和文本都与模型属性的值相同,我只是尝试从控制器加载下拉列表中的值。但是我试图通过此设置将值作为 id 并将文本作为名称,下拉列表未加载 id。

如果文本和值都相同,我可以这样做并且它有效

vm.CustomerName = model.CustomerName;

查看 DDL

@Html.DropDownListFor(e => e.ServiceVM.Employee, Model.Employees, "Select Employee", new { @class = "form-control" })

我尝试了一些。

vm.Employee = new SelectListItem { Value = model.EmployeeID.ToString(), Selected=true };
                //vm.EmployeeName = model.EmployeeID.ToString();
                //var employee = new Employee_Main();
                //try
                //{
                //    employee = context.Employee_Main.Where(z => z.EmployeeID == model.EmployeeID).FirstOrDefault();
                //}
                //catch(System.Exception) { }
                //vm.EmpID = employee.EmployeeID.ToString();
                //vm.EmployeeName = employee.EmployeeID.ToString();

我真的认为这行得通。我设置了正确的“值”和“文本”,它们显示在 ddl 项目列表中。并且还说 selected=true。

 //vm.EID = model.EmployeeID;
            if (model.EmployeeID != null)
            {
                if(Int32.TryParse(model.EmployeeID.ToString(), out int empID))
                {
                    var employee = context.Employee_Main.Where(e => e.EmployeeID == empID).FirstOrDefault();
                    if(employee != null)
                    {
                        vm.Employee = new SelectListItem() { Value = employee.EmployeeID.ToString(), Text = employee.EFullName, Selected=true };

                    }
                }

                    @Html.DropDownListFor(e => e.ServiceVM.Employee, Model.Employees, "Select Employee", new { @class = "form-control" })

【问题讨论】:

    标签: c# model-view-controller dropdown


    【解决方案1】:

    我让它工作了。 我忘了更改我的 javascript 以匹配不断变化的模型字段。

        var employ = modalA.find(body).find("#ServiceVM_Employee");
        //empid.val(jsonObject.employeeid);
        //empfn.val(jsonObject.employeefname);
        //empln.val(jsonObject.employeelname);
        //empem.val(jsonObject.employeeemail);
        //emppo.val(jsonObject.employeeposition);
        //empname.val(jsonObject.employeefullname);
        employ.val(jsonObject.employeeid);
    

    也用于向列表框添加内容。

    function displayContactData(conID, modal) {
        return $.ajax({
            url: '@Url.Action("GetContactInfo", "Service")',
            data: { contact: conID },
            dataType: 'json',
            success: function (data) {
                var modalX = modal;
                var fullL = modalX.find('.modal-body').find('#lstContact');                          
                fullL.empty();
                $.each(data, function () {
                    fullL.append("<option value='" + this.Value + "'>" + this.Text + "</option");                
                });
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      相关资源
      最近更新 更多