在MVC3中使用MvcPaging2.0使用RouteValues,可以通过以下步骤来实现:
在项目中安装MvcPaging2.0,可以使用NuGet包管理器。在Visual Studio中,打开“工具”>“NuGet包管理器”>“管理解决方案的NuGet程序包”,搜索“MvcPaging”并安装。
在项目中创建一个Paging类,用于存储分页信息。例如:
public class Paging
{
public int PageSize { get; set; }
public int PageNumber { get; set; }
public int TotalItems { get; set; }
public string RouteName { get; set; }
public RouteValueDictionary RouteValues { get; set; }
}
在项目中创建一个分页帮助类,用于生成分页链接。例如:
public static class PagingHelpers
{
public static MvcHtmlString Pager(this HtmlHelper html, Paging paging)
{
var builder = new TagBuilder("div");
builder.AddCssClass("pager");
int currentPage = paging.PageNumber;
int totalPages = (int)Math.Ceiling((double)paging.TotalItems / paging.PageSize);
if (currentPage > 1)
{
var routeValues = new RouteValueDictionary(paging.RouteValues);
routeValues["page"] = currentPage - 1;
var link = new TagBuilder("a");
link.MergeAttribute("href", UrlHelper.GenerateUrl(null, paging.RouteName, null, routeValues, RouteTable.Routes, html.ViewContext.RequestContext, true));
link.InnerHtml = "Previous";
builder.InnerHtml += link.ToString();
}
if (currentPage< totalPages)
{
var routeValues = new RouteValueDictionary(paging.RouteValues);
routeValues["page"] = currentPage + 1;
var link = new TagBuilder("a");
link.MergeAttribute("href", UrlHelper.GenerateUrl(null, paging.RouteName, null, routeValues, RouteTable.Routes, html.ViewContext.RequestContext, true));
link.InnerHtml = "Next";
builder.InnerHtml += link.ToString();
}
return MvcHtmlString.Create(builder.ToString());
}
}
在控制器中,使用分页类和分页帮助类来生成分页链接。例如:
public ActionResult Index(int page = 1)
{
var paging = new Paging
{
PageSize = 10,
PageNumber = page,
TotalItems = 100,
RouteName = "Index",
RouteValues = new RouteValueDictionary { { "page", page } }
};
return View(paging);
}
在视图中,使用分页帮助类来显示分页链接。例如:
@model Paging
@Html.Pager(Model)
这样,在MVC3中就可以使用MvcPaging2.0使用RouteValues来实现分页功能了。
领取专属 10元无门槛券
手把手带您无忧上云