public static string Pager(this HtmlHelper html, IPageData model, bool alwaysShow, bool showNumber) {
if (model.TotalCount == 0 && !alwaysShow || model.TotalCount <= model.PageSize) return "<!--無資料不顯示分頁-->";
var reqUrl = html.ViewContext.RequestContext.HttpContext.Request.Url.ToString();
string link = reqUrl.Contains("page") ? Regex.Replace(reqUrl, @"page=\d+", "page={page}", RegexOptions.IgnoreCase)
: reqUrl.Contains("?") ? reqUrl + "&page={page}" : reqUrl + "?page={page}";
// 建立首頁、上頁、下頁、末頁按鈕 (TagBuilder)
// 判斷 HasPreviousPage/HasNextPage 設定 href 或 disabled
// 顯示頁碼區間 (目前頁 ±5)
// 附加頁面資訊:第 {p} 頁/共 {TotalPages} 頁,每頁 {PageSize} 筆,合計 {TotalCount} 筆
return rootDiv.ToString();
}
使用方式:<%=Html.Pager(Model, true, true)%>。IPageData 需包含 PageIndex、PageSize、TotalCount、TotalPages、HasPreviousPage、HasNextPage。