//The id parameter will represent the page number public async Task <IActionResult> Index(int?id) { #region Comments //List<Product> products = ProductDb.GetProducts(context); //null coalescing operator, This is an alternative //int pageNum = id ?? 1; #endregion //Conditional/ternary operator; int pageNum = (id.HasValue) ? id.Value : 1; const int PageSize = 3; List <Product> products = await ProductDb.GetProductsByPage(context, pageNum, PageSize); //ViewBag/ViewData //ViewBag.MaxPage = 2; int maxPage = ProductDb.GetMaxPage(context, PageSize); int currPage = pageNum; var model = new ProductIndexViewModel(products, maxPage, currPage); return(View(model)); }