c# - 将未知数量的页面添加到 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>
}
我得到了一份不错的数据列表,但想知道如果项目数量超过一定数量,我该如何添加数据在页面中显示的功能?
解决方案
你试过 .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 和超出范围的异常
推荐阅读
- javascript - 为什么 Jquery onclick 监听器不起作用?
- html - 图像宽度被其他东西覆盖
- spring-boot - Jackson Object Mapper 在提供扩展配置时不工作,但在 Spring Boot 中提供类级别/字段级别注释时工作
- ansible - 使用 Ansible 将启动磁盘(如果存在)附加到 Gcloud 实例
- python - Kivy 数字时钟问题
- c# - PostSharp 将调用堆栈显示为“方面代码”并降低调用堆栈的可用性
- vue.js - 如何在 Vue Js 中传递组件以在 props 中呈现?
- cakephp - 升级到cakephp3.6后无法修改header信息
- c - 在 Swift 中从 C 回调中修改值 char** 并避免 EXC_BAD_ACCESS
- kotlin - 为同一个类中的多个服务方法实现 Retrofit 的 Callback 接口