Вы можете реализовать список как частичное представление вместо действия контроллера. Затем вы можете использовать RenderPartial для визуализации списка и передачи другого списка объектов в зависимости от того, что список должен отображать.
Если вы, например, передаете IEnumerable в качестве модели, вы можете реализовать разбиение на страницы, используя что-то вроде Model.Skip (page * pagesize) .Take (pagesize)
обновлен
Давайте не будем делать пейджинг в представлении. Возможно, было бы лучше создать класс модели, который выполняет разбиение на страницы и на самом деле можно тестировать, и передать его в представление для отображения нужной страницы документов. Конечно, представление по-прежнему отвечает за показ страниц и ссылки на другие страницы.
Вы можете создать что-то вроде класса DocumentPager, который оборачивает IEnumerable и выполняет подкачку страниц. Это будет выглядеть примерно так
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.