Привет всем, я просто пытаюсь загрузить значения из выпадающего списка из контроллера, если у меня и значение, и текст совпадают, это работает со свойством модели. Но я пытаюсь, чтобы значение было идентификатором, а текст - именем с помощью этой настройки, раскрывающийся список не загружает идентификатор.
Если и текст, и значение совпадают, я могу просто сделать это, и это сработает
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" })