Asp.net mvc 我想向索引页添加列排序链接
我试图在我的web应用程序中向“到期日”列添加一个列排序链接,但在使其正常工作时遇到了问题。目前,这是我在控制器中的代码,我在其中定义了switch语句,以确定用户希望如何排序:Asp.net mvc 我想向索引页添加列排序链接,asp.net-mvc,sorting,Asp.net Mvc,Sorting,我试图在我的web应用程序中向“到期日”列添加一个列排序链接,但在使其正常工作时遇到了问题。目前,这是我在控制器中的代码,我在其中定义了switch语句,以确定用户希望如何排序: var items = from s in db.Items select s; ViewBag.DateSortParm = sortOrder == "DueDate" ? "duedate_desc" : "DueDate"; swit
var items = from s in db.Items
select s;
ViewBag.DateSortParm = sortOrder == "DueDate" ? "duedate_desc" : "DueDate";
switch (sortOrder)
{
case "duedate_desc":
items = items.OrderByDescending(s => s.DueDate);
break;
case "DueDate":
items = items.OrderBy(s => s.DueDate);
break;
default:
items = items.OrderByDescending(s => s.DueDate);
break;
在索引视图中,以下是我的代码:
<tr>
<th>
@Html.DisplayNameFor(model => model.First().ItemDescription)
</th>
<th>
@Html.DisplayNameFor(model => model.First().Quantity)
</th>
<th>
@Html.DisplayNameFor(model => model.First().Price)
</th>
<th>
@Html.ActionLink("Due Date", "Index", new
{
sortOrder=ViewBag.DateSortParm,
})
我必须使用.OrderBy来获取要渲染的视图,否则会出现“skip”方法错误。这是否导致列排序链接无法正常工作的问题?有什么可能的解决办法吗
-谢谢 我找到了问题的答案。我必须删除.OrderBy子句
int pageSize = 15;
int pageNumber = (page ?? 1);
pageNumber = page == null ? (ViewBag.pageData == null ? 1 : (int)ViewBag.pageData) : page.Value;
ViewBag.pageData = page;
ViewBag.searchBy = searchBy;
ViewBag.search = search;
return View(items.OrderBy(i => i.ItemId).ToPagedList(pageNumber,pageSize));