Pagination helper
@helper createNav(int num_currentPage, int num_maxPages, int num_visiblePages = 5, string str_pageBaseHref = "/Default.aspx?ID={{PageID}}&{{ParagraphID}}&Page="){
str_pageBaseHref = str_pageBaseHref.Contains("{{PageID}}") ? str_pageBaseHref.Replace("{{PageID}}", Pageview.Page.ID.ToString()) : str_pageBaseHref;
str_pageBaseHref = str_pageBaseHref.Contains("{{ParagraphID}}") ? str_pageBaseHref.Replace("{{ParagraphID}}", Pageview.CurrentParagraph.ID.ToString()) : str_pageBaseHref;
num_visiblePages = num_visiblePages < num_maxPages ? num_visiblePages : num_maxPages;
int num_startIndex = Decimal.ToInt32(Math.Ceiling((decimal)num_visiblePages/2));
int num_endIndex = Decimal.ToInt32(Math.Floor((decimal)num_visiblePages/2));
num_endIndex = num_currentPage-num_startIndex < 0 ? num_endIndex + (num_startIndex-num_currentPage) : num_currentPage >= num_maxPages-num_endIndex ? num_maxPages-num_currentPage : num_endIndex;
num_startIndex = num_currentPage-num_startIndex < 0 ? num_currentPage : num_currentPage >= num_maxPages-(num_startIndex-1) ? num_visiblePages-num_endIndex : num_startIndex;
for(int i=num_currentPage-num_startIndex; i<num_currentPage+num_endIndex; i+=1){
bool bol_isCurrentPage = (i+1) == num_currentPage ? true : false;
string str_href = bol_isCurrentPage ? "javascript: void(0);" : str_pageBaseHref + (i+1);
string str_pageClass = bol_isCurrentPage ? "buttonLink disabled currentPage" : "buttonLink";
<a class="noSymbol @str_pageClass" href="@str_href">@(i+1)</a>
}
}