【发布时间】:2017-05-25 12:26:11
【问题描述】:
我正在使用 PagedList.MVC nuget, 每次我点击下一个按钮都需要将近 10 秒的时间。 我已经看到 PagedList 中有大约 350,000 个结果,每次单击下一个按钮时,它都会再次遍历所有结果。我该如何解决这个问题?
这是代码。
public ActionResult Index(int? page)
{
List<Item> items;
using (var db = new DBDevEntities())
{
items= db.items.ToList();
}
var pageNumber = page ?? 1;
return View(items.ToPagedList(pageNumber, 25));
}
【问题讨论】:
-
不要使用
List<Item>和.ToList()(即在进行分页之前将所有记录加载到内存中 -
您每次翻页时都会加载整个列表。将
items的值缓存到控制器的属性中(或者更好的是,实现分页服务器端)。 -
@stephenmuecke 你应该使用它吗?
-
@SoheilAlizadeh,用什么? (必须是
IQueryable<T>,而不是List<T>) -
@stephenmuecke 我的意思是使用其他框架。
标签: c# .net asp.net-mvc pagination pagedlist