在MVC4中,使用视图模型和操作链接时,可以通过以下步骤来实现分页功能:
以下是一个示例代码:
public class MyViewModel
{
public List<MyData> DataList { get; set; }
public int CurrentPage { get; set; }
public int TotalPages { get; set; }
}
public ActionResult Index(int page = 1)
{
int pageSize = 10; // 每页显示的数据条数
int totalRecords = // 查询总记录数的方法,例如从数据库中查询
int totalPages = (int)Math.Ceiling((double)totalRecords / pageSize);
List<MyData> dataList = // 查询数据的方法,例如从数据库中查询
MyViewModel viewModel = new MyViewModel
{
DataList = dataList.Skip((page - 1) * pageSize).Take(pageSize).ToList(),
CurrentPage = page,
TotalPages = totalPages
};
return View(viewModel);
}
@for (int i = 1; i <= Model.TotalPages; i++)
{
@Html.ActionLink(i.ToString(), "Index", new { page = i })
}
public ActionResult Index(int page = 1)
{
// 同上,查询数据并进行分页处理
// ...
MyViewModel viewModel = new MyViewModel
{
// 同上,赋值给视图模型的属性
// ...
};
return View(viewModel);
}
@foreach (var item in Model.DataList)
{
// 展示数据列表的代码
// ...
}
<div>
@for (int i = 1; i <= Model.TotalPages; i++)
{
@Html.ActionLink(i.ToString(), "Index", new { page = i })
}
</div>
这样,当用户点击分页链接时,会重新请求控制器的Index方法,并传递对应的页码参数,控制器会重新查询数据并进行分页处理,最终在视图中展示分页后的数据列表和更新后的分页链接。
云原生正发声
北极星训练营
DB TALK 技术分享会
企业创新在线学堂
企业创新在线学堂
云+社区技术沙龙[第17期]
云+社区技术沙龙 [第30期]
serverless days
Elastic 实战工作坊
领取专属 10元无门槛券
手把手带您无忧上云