Я пытаюсь реализовать функциональность сортировки, которая показана в руководствах Entity Framework на сайте MVC Asp.net, здесь
http://www.asp.net/entity-framework/tutorials/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application
По какой-то причине, хотя я вижу, что в URL добавляются правильные строки запроса, данные не сортируются,
У меня есть следующий оператор switch в моем контроллере, чтобы позволить мне сортировать данные по имени клиента или имени основного контакта
//Returns a list of all the customers to be displayed on the (Master edit page)
//- TODO - Implement Paging Functionality
public ViewResult Index(string sortOrder)
{
ViewBag.CustomerNameSortParm = String.IsNullOrEmpty(sortOrder) ? "CustomerName desc" : "";
ViewBag.PrimaryContactNameSortParm = sortOrder == "PrimaryContactName" ? "PrimaryContactName desc" : "PrimaryContactName";
var cust = repository.Customers;
switch (sortOrder)
{
case "CustomerName desc":
cust = repository.Customers.OrderByDescending(s => s.CustomerName);
break;
case "PrimaryContactName":
cust = repository.Customers.OrderBy(s => s.PrimaryContactName);
break;
case "PrimaryContactName desc":
cust = repository.Customers.OrderByDescending(s => s.PrimaryContactName);
break;
default:
cust = repository.Customers.OrderBy(s => s.CustomerName);
break;
}
return View(repository.Customers.ToList());
}
Тогда в представлении у меня есть ссылки, созданные для каждого из заголовков кумна
<th class="header">
@Html.ActionLink("Customer Name", "Index", new { sortOrder=ViewBag.CustomerNameSortParm })
</th>
<th class="header">
@Html.ActionLink("Contact Name", "Index", new { sortOrder=ViewBag.PrimaryContactNameSortParm })
</th>
Когда я нажимаю на ссылки, я вижу значения строки запроса в URL-адресе, например
http://localhost:58783/Admin/Index?sortOrder=PrimaryContactName
Но данные не сортируются, кто-нибудь сталкивался с подобными проблемами или знает, где я ошибаюсь? по какой-то причине комментарии в нижней части учебника Entity Framework не отображаются, поэтому я не вижу, есть ли у кого-то еще эта проблема.
Единственное отличие, которое я вижу в своем коде, заключается в том, что в учебнике в контроллере используется запрос LINQ, где я использую репозиторий и возвращаю своих клиентов из репозитория, который возвращает список клиентов IQueryable.
Любой совет приветствуется.
Ли.