ViewBag
является динамическим.
Таким образом, предполагая, что он был установлен в контроллере как
List<Employee> employees = getEmployeeList();
this.ViewBag.EmployeeList = employees;
//...
return View(model);
В представлении приведите свойство к известной коллекции типов, и метод расширения должен быть доступен.
@foreach (var item in (ViewBag.EmployeeList as List<Employee>)
.OrderBy(_ => _.FirstName).ThenBy(_ => _.LastName)) {
<option value="@item.Id">@item.FirstName @item.LastName</option>
}
В качестве альтернативы вы можете отсортировать его в контроллере, прежде чем назначить его на ViewBag
, и просто сделать так, чтобы код зацикливал коллекцию в представлении.
List<Employee> employees = getEmployeeList()
.OrderBy(_ => _.FirstName).ThenBy(_ => _.LastName)
.ToList();
this.ViewBag.EmployeeList = employees;
//...