@ Dave
Извините, я пропустил ваш главный вопрос в своем первом ответе
Если вы хотите реализовать сортировку с использованием чистого MVC3,
Я могу сделать это с помощью следующих шагов
- метод действия списка, передающий sortcolumn и информацию о заказе на страницу просмотра через ViewBag
- Html вспомогательный метод для создания actionlink с отображением порядка столбцов
- страница просмотра списка, вызывающая вспомогательный метод
Я загрузил исходный код здесь
<ч />
Метод действия со списком
public ActionResult Index(string sortColumn, bool? asc)
{
if (string.IsNullOrWhiteSpace(sortColumn))
sortColumn = "Number";
asc = asc ?? true;
SortDirection sortDirection = asc == true ? SortDirection.Ascending : SortDirection.Descending;
var query = _service.GetTags().OrderBy(sortColumn, sortDirection);
return View(query);
}
Html вспомогательный метод
public static MvcHtmlString ActionLinkWithColumnOrder(this HtmlHelper helper,
string columnName,string action,string currentColumn,bool currentOrder)
{
object routeValues;
object htmlAttributes = null;
if (columnName == currentColumn)
{
routeValues = new { sortColumn = columnName, asc = !currentOrder };
htmlAttributes = new { @class = currentOrder ? "sort_asc" : "sort_desc" };
}
else
{
routeValues = new { sortColumn = columnName };
}
return helper.ActionLink(columnName, action, routeValues, htmlAttributes);
}
Список Просмотр страницы
...
@ Html.ActionLinkWithColumnOrder ("TagCode", "Index", (строка) ViewBag.sortColumn, (bool) ViewBag.asc)
...
@ Html.ActionLinkWithColumnOrder ("Число", "Индекс", (строка) ViewBag.sortColumn, (bool) ViewBag.asc)
Happy Mvcing!
Sangsu PARK (http://supremeware.blogspot.com)