コントローラー アクションではなく、部分ビューとしてリストを実装できます。次に、RenderPartial を使用してリストをレンダリングし、リストの表示内容に応じて異なるオブジェクトのリストを渡すことができます。
たとえば、IEnumerable をモデルとして渡すと、Model.Skip(page * pagesize).Take(pagesize) のようなものを使用してページングを実装できます。
更新しました
ビューでページングを行わないようにしましょう。ページングを実行し、実際にテスト可能なモデル クラスを作成し、それをビューに渡してドキュメントの適切なページを提供することをお勧めします。もちろん、ビューは引き続きページの表示と他のページへのリンクを担当します。
IEnumerable をラップしてページングを行う DocumentPager クラスのようなものを作成できます。これは次のようになります
public class DocumentPager {
public IEnumerable<MyDocumentObject> DocSource { get; private set; }
public int PageSize { get; private set; }
public DocumentPager(IEnumerable<MyDocumentObject> docSource, int pageSize) {
DocSource = docSource;
PageSize = pageSize;
}
public IEnumerable<MyDocumentObject> GetPage(int pageNumber) {
return DocSource.Skip(..etc).Take(..etc);
}
public int NumPages {
get { return DocSource.Count() / PageSize; }
}
}
次に、これをビューと、GetPage および NumPages メソッドとプロパティを呼び出すことができる部分ビューに渡すことができます。