Asp.net mvc ASP.NET MVC中不同类型数据集分页的可重用方法

Asp.net mvc ASP.NET MVC中不同类型数据集分页的可重用方法,asp.net-mvc,Asp.net Mvc,我有各种各样的数据模型——我们称它们为Account、User和Order。最终还有很多 我的视图将显示帐户对象、用户对象或订单对象的列表。每个视图都允许根据搜索条件对这些对象进行过滤,每个条件对于对象都是唯一的 使用页面的视图模型实现分页的最佳方法是什么,这样每个操作模型就不必包含某种页面参数?我的目标是从页面视图中获取页面信息,页面视图是页面视图模型中的一个属性 注意:以下是我开始处理这个问题的方式: 通用视图模型: public ListViewModel<T> { p

我有各种各样的数据模型——我们称它们为Account、User和Order。最终还有很多

我的视图将显示帐户对象、用户对象或订单对象的列表。每个视图都允许根据搜索条件对这些对象进行过滤,每个条件对于对象都是唯一的

使用页面的视图模型实现分页的最佳方法是什么,这样每个操作模型就不必包含某种页面参数?我的目标是从页面视图中获取页面信息,页面视图是页面视图模型中的一个属性

注意:以下是我开始处理这个问题的方式:

通用视图模型:

public ListViewModel<T> {
    public List<T> Models {get;set;}
    public PageRange PageRange {get;set;}
}
除了查询字符串必须包含PageRange.PageStart=其中是一个整数,它才能正确绑定外,其他情况都可以使用。如果MVC在查询字符串中检测到start=,我只希望MVC调用PageRange的绑定,并将其连接到视图模型

public AccountListViewModel : ListViewModel<Account> { }
public ActionResult List(AccountListViewModel viewModel) {
    var accounts = /* retrieve data based on properties of view model */

    var trimmedAccounts = /* skip and take elements from accounts object based on viewModel.PageRange */
    accounts.Models = trimmedAccounts
    return View(viewModel);
}