asp.netMVC中实现分页方法
时间: 2024-03-20 18:45:10 浏览: 63
在 ASP.NET MVC 中实现分页方法的步骤如下:
1. 定义一个分页模型类,包含当前页码、每页显示数据条数、总数据条数等属性。
```C#
public class PagingModel
{
public int CurrentPage { get; set; } // 当前页码
public int PageSize { get; set; } // 每页显示数据条数
public int TotalCount { get; set; } // 总数据条数
}
```
2. 在控制器中实现分页方法,根据当前页码和每页显示数据条数,从数据库中获取对应的数据。
```C#
public ActionResult Index(int? page)
{
int pageSize = 10; // 每页显示数据条数
int currentPage = page ?? 1; // 当前页码,默认为第一页
var list = dbContext.Users.OrderBy(u => u.Id)
.Skip((currentPage - 1) * pageSize)
.Take(pageSize)
.ToList();
var totalCount = dbContext.Users.Count(); // 获取总数据条数
var model = new PagingModel
{
CurrentPage = currentPage,
PageSize = pageSize,
TotalCount = totalCount
};
ViewBag.Model = model;
return View(list);
}
```
3. 在视图中使用分页控件,显示分页信息和分页导航链接。
```C#
@model List<User>
@foreach(var item in Model)
{
<tr>
...
</tr>
}
@{
var model = ViewBag.Model as PagingModel;
var totalPage = (int)Math.Ceiling(model.TotalCount / (double)model.PageSize);
}
<div>
<span>共 @model.TotalCount 条记录,共 @totalPage 页</span>
@if (model.CurrentPage > 1)
{
@Html.ActionLink("上一页", "Index", new { page = model.CurrentPage - 1 })
}
@for (int i = 1; i <= totalPage; i++)
{
if (i == model.CurrentPage)
{
<span>@i</span>
}
else
{
@Html.ActionLink(i.ToString(), "Index", new { page = i })
}
}
@if (model.CurrentPage < totalPage)
{
@Html.ActionLink("下一页", "Index", new { page = model.CurrentPage + 1 })
}
</div>
```
通过以上步骤,我们就可以在 ASP.NET MVC 中实现分页方法了。
阅读全文