public ActionResult Index(int page = 1) { //Пагинация. На странице отображается по три поста. Ссылки на страницы выполнены в общем стиле блога. int pageSize = 3; IEnumerable <Post> postPerPages = db.Post.OrderByDescending(d => d.PostedOn).Skip((page - 1) * pageSize).Take(pageSize); PostPageInfoModel pageInfo = new PostPageInfoModel { PageNumber = page, PageSize = pageSize, TotalItems = db.Post.Count() }; PostViewModel pvm = new PostViewModel { PageInfo = pageInfo, Posts = postPerPages }; return(View(pvm)); }
public static MvcHtmlString PageLinks(this HtmlHelper html, PostPageInfoModel pageInfo, Func <int, string> pageUrl) { StringBuilder result = new StringBuilder(); for (int i = 1; i <= pageInfo.TotalPages; i++) { TagBuilder tag = new TagBuilder("a"); tag.MergeAttribute("href", pageUrl(i)); tag.InnerHtml = i.ToString(); if (i == pageInfo.PageNumber) { tag.AddCssClass("pagging-select"); } else { tag.AddCssClass("pagging-non-select"); } result.Append(tag.ToString()); } return(MvcHtmlString.Create(result.ToString())); }