Normally I would bind data to a DropDownListFor
with a SelectList
:
@Html.DropDownListFor(model => model.CustomerId, new SelectLi
When we use strongly typed views, we can use the @Html.DropDownListFor()
method. This helper method will need the list of departments to first populate the dropdown and then set the employee’s department id passed in model object as selected item.
public ActionResult edit(int id)
{
Employee emp = db.Employees.Where(e => e.EmployeeId == id).FirstOrDefault();
ViewBag.DepartmentListItems = db.Departments.Distinct().Select(i => new SelectListItem() { Text = i.DepartmentName, Value = i.DepartmentId.ToString() }).ToList();
return View(emp);
}
The list items in view bag will be used to bind the dropddownlist and html helper will set the DepartmentId
based on the Employee
model passed to the view. View Code below.
@Html.DropDownListFor(model => model.DepartmentId, ViewBag.DepartmentListItems as IEnumerable,"Select")