方法一:
在項目中增加App_Code文件夾,新增一個MyHtmlper.cshtml視圖文件

寫入代碼:
@helper Pagger(int pageIndex, int pageCount)
{
@for (int i = 1; i <= pageCount; i++)
{
if (i != pageIndex)
{
@(i)
}
else
{
@i
}
}
}
新增一個HomeController
public class HomeController : Controller
{
// GET: Home
public ActionResult Index(int pageIndex = 1,int pageCount=10)
{
if (pageIndex <= 0)
pageIndex = 1;
TempData["PageIndex"] = pageIndex;
TempData["PageCount"] = pageCount;
return View();
}
}
寫一個新的路由
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Pagger",
url: "{controller}/{action}/{pageIndex}_{pageCount}",
defaults: new { controller = "Home", action = "Index"}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
新增視圖:
@{
ViewBag.Title = "Index";
}
@{
var pageindex = Convert.ToInt32( TempData["PageIndex"]);
var pageCount = Convert.ToInt32(TempData["PageCount"]);
}
當前是第 @pageindex 頁
@MyHtmlper.Pagger(pageindex, pageCount)
運行結果

方法二:
擴展HtmlHelper方法,新增一個CodeHelper類型,擴展HtmlHelper一個Pagger方法
public static class CodeHelper
{
public static MvcHtmlString Pagger(this HtmlHelper htmlHelper, int pageIndex, int pageCount)
{
var htmlSb = new StringBuilder();
for (int i = 1; i <= pageCount; i++)
{
if (i != pageIndex)
{
htmlSb.Append(" " + i + "");
}
else
{
htmlSb.Append("" + i + "");
}
}
return new MvcHtmlString(htmlSb.ToString());
}
}
修改視圖
@{
ViewBag.Title = "Index";
}
@{
var pageindex = Convert.ToInt32( TempData["PageIndex"]);
var pageCount = Convert.ToInt32(TempData["PageCount"]);
}
當前是第 @pageindex 頁
@MyHtmlper.Pagger(pageindex, pageCount)
@Html.Pagger(pageindex,pageCount)
運行結果:

本人當前只知道兩種方法。分享出了給大家借鑒