How to add selected Item to SelectList when updating

107 Views Asked by At

I've been searching online and I cannot find a way to select the chosen department when a user wants to update the employee.

I want the selected value obj.Departmentto define the order of the selectList listItems I can send everything else except the department.

 public IActionResult EditDetail(Employee obj)

        {
            var viewModel = new Employee
            {
                EmployeeId = obj.EmployeeId,
                Name = obj.Name,
                Surname = obj.Surname,
                DateOfBirth = obj.DateOfBirth,
                Department = obj.Department
            };


            var listItems = new List<SelectListItem> {
            new SelectListItem {Text = "Business", Value = "1"},
            new SelectListItem {Text = "Information Technology", Value = "2"},
            new SelectListItem {Text = "Human Capital", Value = "3"}
            };

            
            ViewBag.listItems = listItems;

            return View(viewModel);
        }

The html

  <select class="form-control" style="width:450px" asp-for="Department" asp-items="ViewBag.listItems">
1

There are 1 best solutions below

0
Serge On

If you don't have DepartmentId you have to fix Employee class by adding it

public class Employee
{
   .....
  public int DepartmentId {get; set;}
  public virtual Department {get; set;}
}

action

 var viewModel = new Employee
  {
   .....
   DepartmentId = obj.DepartmentId
 };
   
  ......

    return View(viewModel);

//but I don't think that you need  to create viewmodel in your case. 
//you can try

 return View(obj);

view

 <select class="form-control" style="width:450px" asp-for="DepartmentId" asp-items="ViewBag.listItems">