using System.Collections.Generic;
namespace PaginationExample
public class IndexViewModel
public IEnumerable<string> Items { get; set; }
public Pager Pager { get; set; }
public Pager(int totalItems, int? page, int pageSize = 10)
var totalPages = (int)Math.Ceiling((decimal)totalItems / (decimal)pageSize);
var currentPage = page != null ? (int)page : 1;
var startPage = currentPage - 5;
var endPage = currentPage + 4;
endPage -= (startPage - 1);
if (endPage > totalPages)
CurrentPage = currentPage;
public int TotalItems { get; private set; }
public int CurrentPage { get; private set; }
public int PageSize { get; private set; }
public int TotalPages { get; private set; }
public int StartPage { get; private set; }
public int EndPage { get; private set; }