public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo,int Id, string category) { var results = new StringBuilder(); UrlHelper urlHelper = new UrlHelper(html.ViewContext.RequestContext); if(pagingInfo.HasPreviousPage) { TagBuilder tag = new TagBuilder("a"); tag.MergeAttribute("href", urlHelper.ResultsUrl((pagingInfo.type != "" ? pagingInfo.type + "/" : pagingInfo.CurrentCategory + "/") + category,Id,(pagingInfo.CurrentPage - 1).ToString())); tag.InnerHtml = "<<"; tag.AddCssClass("First"); results.Append(tag.ToString()); } for (int page = 1; page <= pagingInfo.TotalPages; page++) { TagBuilder tag = new TagBuilder("a"); //construct an <a> tag tag.MergeAttribute("href", urlHelper.ResultsUrl((pagingInfo.type != "" ? pagingInfo.type + "/" : pagingInfo.CurrentCategory + "/") + category, Id, page.ToString())); tag.InnerHtml = page.ToString(); if (page == pagingInfo.CurrentPage) tag.AddCssClass("page larger"); else tag.AddCssClass("page smaller"); results.Append((tag.ToString())); } if (pagingInfo.HasNextPage) { TagBuilder tag = new TagBuilder("a"); tag.MergeAttribute("href", urlHelper.ResultsUrl((pagingInfo.type != "" ? pagingInfo.type + "/" : pagingInfo.CurrentCategory + "/") + category, Id, (pagingInfo.CurrentPage + 1).ToString())); tag.InnerHtml = ">>"; tag.AddCssClass("Last"); results.Append(tag.ToString()); } return MvcHtmlString.Create(results.ToString()); }