【发布时间】:2017-04-06 15:51:15
【问题描述】:
我已经在我的 .NET MVC 应用程序中实现了自定义分页,如下面的代码所示:
var draw = Request.Form.GetValues("draw").FirstOrDefault();
var start = Request.Form.GetValues("start").FirstOrDefault();
var length = Request.Form.GetValues("length").FirstOrDefault();
var sortColumn = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
var sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();
int pageSize = length != null ? Convert.ToInt32(length) : 0;
int skip = start != null ? Convert.ToInt32(start) : 0;
int totalRecords = 0;
using (var ctx = new myContext())
{
var v = ctx.zsp_select_allusers().ToList();
if(!string.IsNullOrEmpty(sortColumn) && string.IsNullOrEmpty(sortColumnDir))
{
v = v.OrderBy(sortColumn + " " + sortColumnDir);
}
totalRecords = v.Count();
var data = v.Skip(skip).Take(pageSize).ToList();
return Json(new { draw=draw, recordsFiltered = totalRecords, recordsTotal = totalRecords, data = data },JsonRequestBehavior.AllowGet);
}
实现的自定义分页工作正常,但我在这行代码中遇到错误:
v = v.OrderBy(sortColumn + " " + sortColumnDir);
上面写着:
the type argument for method Enumerable.OrderBy(... )cannot be inferred
我在这里做错了什么?
【问题讨论】:
-
因为这不是方法的工作原理。 msdn.microsoft.com/en-us/library/bb534966(v=vs.110).aspx 阅读文档,它需要一个 Func
返回您排序所依据的值。 -
不相关,但使用
.ToList()将您的收藏物化到内存中,并破坏了分页的主要目的之一。
标签: c# asp.net asp.net-mvc asp.net-mvc-5 datatables