Uma forma muito simples de fazer paginação com ASP.NET MVC é utilizando o componente PagedList em conjunto com o PagedList.Mvc.

Como o PagedList foi criado utilizando IQueryable e Linq, ele é compatível com Entity Framework ou qualquer outro ORM que tenha funcionamento parecido.

Para utilizar o PagedList, adicione no seu projeto Data (caso seja separado do projeto MVC):

E no projeto MVC adicione o PagedList.Mvc:

A mágica acontece quando chamamos os métodos de extensão da biblioteca, no caso o método ToPagedList.

No exemplo acima tenho a propriedade Table do meu _postRepository, me retorna o que seria um DbSet.

Agora no nosso Controller no projeto MVC, vamos chamar o método GetAllPosts().

Na pasta Views edite o Web.config e adicione o Namespace do PagedList para facilitar o uso:

<a href="https://i1.wp.com/www.leonardohofling.com/blog/wp-content/uploads/2015/09/Screenshot_14.png” data-rel="lightbox-image-0” data-rl_title=”” data-rl_caption=”” title="“>

Agora vamos montar uma listagem simples na nossa View e exibir o controle de paginação utilizando o Helper do PagedList.Mvc.

Veja como ficou em execução:

Para mais informações e código fonte do PagedList acesse:

https://github.com/troygoode/PagedList</a>

Até a próxima!