0
A
回答
0
史蒂夫·桑德森介紹了他的書Pro ASP.NET MVC 3的的支持分頁例子,我強烈推薦(雖然直到下一個version發佈應該不會很長)。
他描述了產品控制器(上市的產品頁)爲:
public class ProductController : Controller {
public int PageSize = 4; //This could be retrieved from the database
private IProductRepository repository;
public ProductController(IProductRepository repoParam) {
repository = repoParam;
}
public ViewResult List(int page = 1) {
ProductsListViewModel viewModel = new ProductsListViewModel {
Products = repository.Products
.OrderBy(p => p.ProductID)
.Skip((page - 1) * PageSize)
.Take(PageSize),
PagingInfo = new PagingInfo {
CurrentPage = page,
ItemsPerPage = PageSize,
TotalItems = repository.Products.Count()
}
};
return View(viewModel);
}
然後查詢到的動作可以是以下形式:
http://localhost:23081/Product/List?page=2
(或任何路由您需要) 。
這個視圖模型將被:
public class ProductsListViewModel {
public IEnumerable<Product> Products { get; set; }
public PagingInfo PagingInfo { get; set; }
}
而且PagingInfo模型應該是:
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); }
}
}
然後,您可以使用該尋呼信息按要求在視圖中顯示的信息。
0
看看我PagedList NuGet包在GitHub上:
https://github.com/troygoode/pagedlist
這將允許你寫的代碼如下所示:
MyController.cs
public class MyController : Controller{
public object MyRoute(){
var pagedProducts = ProductsRepo.All().ToPagedList();
return View(pagedProducts);
}
}
MyRoute .cshtml
<ul>
@foreach(var product in ViewModel){
<li>@product.Name</li>
}
</ul>
@Html.PagedListPager(ViewModel, page=> Url.Action("MyRoute", {page = page}))
相關問題
- 1. 使用模型優先方法時,可以緩存視圖嗎?
- 2. 使用動態模型的代碼優先方法
- 3. 使用EF4遷移工具和模型優先方法
- 4. 使用鏈接列表插入優先級隊列的方法
- 5. 在模型中分叉運行方法。應該優先考慮什麼?
- 6. 代碼優先或模型優先
- 7. 模型優先vs數據優先EF
- 8. 使用大小模板優先於指針類型的方法的方法
- 9. 在CakePHP中使用自定義模型方法分頁
- 10. 使用SimpleMembership與EF模型優先
- 11. 實體框架 - 混合模型優先和數據庫優先的方法?
- 12. 使用MEFedMVVM在父視圖/視圖模型中實現視圖模型優先方法
- 13. 是否可以在代碼優先的模型中使用LinqPad
- 14. Dijkstra算法使用優先級隊列
- 15. 使用Prim算法優先隊列?
- 16. 使用鏈表的優先級隊列
- 17. 排列頁面優先
- 18. 使用優先級隊列在java中進行模擬
- 19. 帶代碼優先模型的MVC DropDown列表
- 20. ASP MVC代碼優先列表<string>模型屬性
- 21. 列表到優先隊列
- 22. EF代碼優先 - 在填充模型
- 23. 在C#中實現Fluent API類型的方法代碼優先
- 24. 實體框架模型優先和數據庫優先模型設計
- 25. 雙重優先級隊列使用雙重結構方法
- 26. 優先級隊列中的優先級
- 27. 如何在EntityFramework中引用另一個模型列表的模型映射代碼優先
- 28. cakephp2:使用分頁模型
- 29. 如何在實體框架中從模型優先改變爲代碼優先
- 30. C#擴展方法優先