Загрузить значение Dropdownlist в <select>из контроллера, где значение и текст отличаются - PullRequest
0 голосов
/ 11 февраля 2020

Привет всем, я просто пытаюсь загрузить значения из выпадающего списка из контроллера, если у меня и значение, и текст совпадают, это работает со свойством модели. Но я пытаюсь, чтобы значение было идентификатором, а текст - именем с помощью этой настройки, раскрывающийся список не загружает идентификатор.

Если и текст, и значение совпадают, я могу просто сделать это, и это сработает

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();

Я действительно думал, что это сработает. Я устанавливаю правильные 'value' и 'text', которые отображаются в списке элементов 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" })

1 Ответ

0 голосов
/ 11 февраля 2020

Я получил это работает. Я забыл изменить 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");                
            });
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...