首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在asp.net mvc中处理分页?

在ASP.NET MVC中处理分页,可以使用以下步骤:

  1. 创建一个ViewModel类,用于存储分页数据和分页信息。
代码语言:csharp
复制
public class PaginatedList<T> : List<T>
{
    public int PageIndex { get; private set; }
    public int TotalPages { get; private set; }
    public int PageSize { get; private set; }
    public int TotalCount { get; private set; }

    public PaginatedList(IEnumerable<T> items, int count, int pageIndex, int pageSize)
    {
        TotalCount = count;
        PageSize = pageSize;
        PageIndex = pageIndex;
        TotalPages = (int)Math.Ceiling(count / (double)pageSize);

        AddRange(items);
    }

    public bool HasPreviousPage
    {
        get
        {
            return (PageIndex > 1);
        }
    }

    public bool HasNextPage
    {
        get
        {
            return (PageIndex< TotalPages);
        }
    }

    public static PaginatedList<T> Create(IQueryable<T> source, int pageIndex, int pageSize)
    {
        var count = source.Count();
        var items = source.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
        return new PaginatedList<T>(items, count, pageIndex, pageSize);
    }
}
  1. 在Controller中,使用PaginatedList类来处理分页。
代码语言:csharp
复制
public ActionResult Index(int? page)
{
    int pageSize = 10;
    int pageNumber = (page ?? 1);

    var items = db.Items.OrderBy(i => i.Id);
    var model = PaginatedList<Item>.Create(items, pageNumber, pageSize);

    return View(model);
}
  1. 在View中,使用PaginatedList类来显示分页信息。
代码语言:html
复制
@model PaginatedList<Item><table>
    <tr>
        <th>Id</th>
        <th>Name</th>
    </tr>
    @foreach (var item in Model)
    {
        <tr>
            <td>@item.Id</td>
            <td>@item.Name</td>
        </tr>
    }
</table>

<div>
    @if (Model.HasPreviousPage)
    {
        <a href="@Url.Action("Index", new { page = Model.PageIndex - 1 })">Previous</a>
    }
    @if (Model.HasNextPage)
    {
        <a href="@Url.Action("Index", new { page = Model.PageIndex + 1 })">Next</a>
    }
</div>

这样,在ASP.NET MVC中就可以实现分页功能了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券