将未知数量的页面添加到asp.net C#视图中

时间:2018-05-03 22:33:45

标签: c# html asp.net asp.net-mvc pagination

我正在尝试使用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>
}

我得到了一份很好的数据列表,但是我想知道如果项目数量超过一定数量,我可以如何添加数据在页面中显示的能力?

1 个答案:

答案 0 :(得分:0)

你试过.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和越界异常