示例#1
0
        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));
        }
示例#2
0
        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()));
        }