Visual studio 2010 在模型优先方法上使用分页列表?

Visual studio 2010 在模型优先方法上使用分页列表?,visual-studio-2010,asp.net-mvc-3,controller,paging,pagedlist,Visual Studio 2010,Asp.net Mvc 3,Controller,Paging,Pagedlist,我想使用分页列表在我的视图中分页数据,我以前使用web网格进行过此操作,但我发现使用模型优先的方法很难做到这一点。任何帮助都将不胜感激 谢谢Steve Sanderson在他的书中描述了一个支持分页的例子,我强烈推荐这本书(虽然它应该不会太久,直到下一本书发布) 他将产品控制器(列出产品页面)描述为: 对该操作的查询可以采用以下形式: http://localhost:23081/Product/List?page=2 (或您需要的任何路线) 该视图模型将是: public class Pro

我想使用分页列表在我的视图中分页数据,我以前使用web网格进行过此操作,但我发现使用模型优先的方法很难做到这一点。任何帮助都将不胜感激


谢谢

Steve Sanderson在他的书中描述了一个支持分页的例子,我强烈推荐这本书(虽然它应该不会太久,直到下一本书发布)

他将产品控制器(列出产品页面)描述为:

对该操作的查询可以采用以下形式:

http://localhost:23081/Product/List?page=2
(或您需要的任何路线)

该视图模型将是:

public class ProductsListViewModel {
   public IEnumerable<Product> Products { get; set; }
   public PagingInfo PagingInfo { get; set; }
}

然后,您可以根据需要使用此页面信息在视图中显示信息。

在github上查看我的页面列表nuget包:

这将允许您编写如下代码:

MyController.cs

MyRoute.cshtml

    @foreach(ViewModel中的var乘积){
  • @产品名称
  • }
@PagedListPager(ViewModel,page=>Url.Action(“MyRoute”,{page=page}))
public class ProductsListViewModel {
   public IEnumerable<Product> Products { get; set; }
   public PagingInfo PagingInfo { get; set; }
}
public class PagingInfo {
   public int TotalItems { get; set; }
   public int ItemsPerPage { get; set; }
   public int CurrentPage { get; set; }
   public int TotalPages {
      get { return (int)Math.Ceiling((decimal)TotalItems / ItemsPerPage); }
   }
}
public class MyController : Controller{
  public object MyRoute(){
    var pagedProducts = ProductsRepo.All().ToPagedList();
    return View(pagedProducts);
  }
}
<ul>
  @foreach(var product in ViewModel){
    <li>@product.Name</li>
  }
</ul>
@Html.PagedListPager(ViewModel, page=> Url.Action("MyRoute", {page = page}))