请帮我写个.net core mvc版本的分页查询
时间: 2023-09-24 11:06:29 浏览: 96
### 回答1:
好的,以下是一个基于.NET Core MVC的分页查询示例:
1. 在你的控制器中定义一个包含分页参数的动作方法,如下所示:
```csharp
public IActionResult Index(int page = 1, int pageSize = 10)
{
// 获取总记录数
int totalCount = dbContext.MyTable.Count();
// 计算总页数
int totalPages = (int)Math.Ceiling(totalCount / (double)pageSize);
// 获取当前页的数据
var items = dbContext.MyTable
.Skip((page - 1) * pageSize)
.Take(pageSize)
.ToList();
// 将分页参数和数据传递到视图
ViewBag.Page = page;
ViewBag.PageSize = pageSize;
ViewBag.TotalCount = totalCount;
ViewBag.TotalPages = totalPages;
return View(items);
}
```
2. 在你的视图中使用分页控件,如下所示:
```html
@model List<MyModel>
<table>
<!-- 显示数据 -->
</table>
<!-- 分页控件 -->
<nav aria-label="Page navigation">
<ul class="pagination">
@for (int i = 1; i <= ViewBag.TotalPages; i++)
{
<li class="@(i == ViewBag.Page ? "active" : "")">
<a href="@Url.Action("Index", new { page = i, pageSize = ViewBag.PageSize })">@i</a>
</li>
}
</ul>
</nav>
```
这样就可以实现一个简单的分页查询功能。当用户在分页控件中点击页码时,会重新发送一个带有新的分页参数的请求,控制器会重新查询数据并将结果传递到视图中显示。
### 回答2:
当使用.NET Core MVC开发分页查询时,可以按照以下步骤进行操作:
1. 首先,在控制器类中添加一个方法用于处理分页查询的请求。例如:
```csharp
public IActionResult Index(int page = 1, int pageSize = 10)
{
// 获取数据总数
int totalCount = _repository.GetTotalCount();
// 计算总页数
int totalPages = (int)Math.Ceiling(totalCount / (double)pageSize);
// 获取当前页的数据
var items = _repository.GetItems(page, pageSize);
// 创建分页模型
var model = new PaginationViewModel
{
TotalCount = totalCount,
TotalPages = totalPages,
CurrentPage = page,
PageSize = pageSize,
Items = items
};
return View(model);
}
```
2. 在视图文件中创建一个展示分页数据的页面。例如,在Index.cshtml文件中添加以下内容:
```html
<h1>分页查询</h1>
<table>
<tr>
<th>名称</th>
<th>描述</th>
<!-- 其他列 -->
</tr>
@foreach (var item in Model.Items)
{
<tr>
<td>@item.Name</td>
<td>@item.Description</td>
<!-- 其他列 -->
</tr>
}
</table>
<div>
<!-- 显示分页链接 -->
@for (int i = 1; i <= Model.TotalPages; i++)
{
<a href="@Url.Action("Index", new { page = i, pageSize = Model.PageSize })">@i</a>
}
</div>
```
3. 在上述视图中使用PaginationViewModel类来展示分页数据。在Models文件夹下创建一个PaginationViewModel.cs文件,代码如下:
```csharp
public class PaginationViewModel
{
public int TotalCount { get; set; }
public int TotalPages { get; set; }
public int CurrentPage { get; set; }
public int PageSize { get; set; }
public List<Item> Items { get; set; }
}
```
其中,Item类是你的数据模型类,根据实际情况来定义。
这样,你就可以在.NET Core MVC中实现一个简单的分页查询。当用户访问该页面时,会根据所选页数和每页显示数量来获取对应页的数据并展示在页面上。
阅读全文