public ActionResult Category(string category, string page) { BlogPostClient bpc = new BlogPostClient(); List <BlogPost> postsList = new List <BlogPost>(bpc.GetAllForCategory(category.ToLower())); postsList.Sort((a, b) => DateTime.Compare(b.Date, a.Date)); if (postsList.Count == 0) { ViewBag.Articles = null; } else { int pages = Convert.ToInt32(Math.Ceiling((double)postsList.Count / 10)); int currentPageNumber = 1; int skip = 0; if (page != null) { if (!Regex.IsMatch(page, @"^\d+$")) { return(RedirectToAction("Index")); } currentPageNumber = Convert.ToInt32(page); skip = (currentPageNumber - 1) * 10; } ViewBag.Pages = pages; ViewBag.CurrentPage = currentPageNumber; List <BlogPost> currentPage = postsList.Skip(skip).Take(10).ToList(); if (currentPage.Count == 0) { return(RedirectToAction("Index")); } ViewBag.Category = category; ViewBag.Articles = currentPage; } return(View()); }