首页 > 解决方案 > 将未知数量的页面添加到 asp.net C# 视图

问题描述

我正在尝试使用 MVC 向 ASP.net Web 应用程序添加分页。目前我有一个控制器,它只是将数据库中的对象列表返回到视图。

 public ActionResult List()
    { 
        return View(db.Classes.ToList());
    }

在我看来,我正在访问数据以打印出所有项目,例如,

 @foreach (var i in Model)
{
    <div class="block">
        <a href="@Url.Action("Index", "Class", new { ClassID = (i.ClassID) })">
            <div class="classItem">
                <div class="title">
                    @Html.DisplayFor(Name => i.Name)
                </div>
                <div class="description">
                    @Html.DisplayFor(Description => i.Description)
                </div>
            </div>
        </a>
    </div>
    <br />
    <br />
</div>
}

我得到了一份不错的数据列表,但想知道如果项目数量超过一定数量,我该如何添加数据在页面中显示的功能?

标签: c#htmlasp.netasp.net-mvcpagination

解决方案


你试过 .Skip(N) 和 .Take(N)

private int pageLength = 10;

    public ActionResult List(int? page)
        { 
            var currentPage = page ?? 0;
            return View(db.Classes
                          .Skip(currentPage * pageLength)
                          .Take(pageLength)
                          .ToList());
        }

这是一个示例,您应该考虑 nullRef 和超出范围的异常


推荐阅读