С помощью этой библиотеки здесь вы можете отсортировать список настраиваемых объектов в нескольких столбцах. Библиотека использует возможности версии 8.0. Образец также доступен там. Вот пример, чтобы сделать
SortKeys sortKeys = new SortKeys();
sortKeys.addField("firstName")
.addField("age", true); // This (true) will sort the age descending
// Other ways to specify a property to the sorter are
// .addField("lastName", String.class);
// .addField("dob", Date.class, true);
// Instantiate a ListSorter
ListSorter listSorter = new ListSorter();
// Pass the data to sort (listToSort) and the "by keys" to sort (sortKeys)
List sortedList = (List) listSorter.sortList(listToSort, sortKeys);
Если бы они только используются в этом контроллере, я сказал бы, что отъезд их частный к контроллеру хорошо. Как только Вы находите, что имеете потребность в них в другом месте, затем надеетесь перемещать их в свой DAL или класс помощника.
на больший вопрос Вашей архитектуры - использующий операторы переключения или стратегическую модель, и т.д. - трудно ответить от просто этого отрывка. Я особенно не оскорблен этим оператором переключения, но можно хотеть сделать, чтобы SessionHelper возвратил стратегию, которая загрузит корректные данные представления для Вас. В этом случае код для загрузки представления вошел бы в класс стратегии.
DataStrategy strategy = SessionHelper.GetDataStrategy()
if (strategy == null)
{
RedirectToAction("Logout","Account");
}
strategy.LoadViewData( ViewData );
return View();
Поскольку ASP.NET, MVC способствует конвенции по конфигурации любые открытые методы для класса, заканчивающегося Контроллером, как предполагается, является методами действия. Если они являются частными, они не.
, Таким образом, нормально абсолютно иметь закрытые методы в классе контроллера.