I have been trying to implement paging for quite a while now and I found this tutorial for paging with MVC: ASP.NET MVC Paging Done Perfectly
Now, in this solution,
This component (PagedList) works just fine for a large number of records, the first time and each time you select a page it will make 2 calls to the database. One returning the number of records, and the other will return just the records of the page selected. Just make sure you don't call the ToList() method