Most of the ASP.NET MVC paging solutions I have found by googling look like they get all rows from a database table in the form of a IEnumerable collection, perform some paging
wouldn't it be more efficient to implement a stored procedure that takes @StartPage and @PageSize parameters?
this way you are only retrieving the subset of data that is actually being used
just have an out parameter called totalCount or something similar so that you know how many page links to create and each link onclick event will pass the page number to a javascript function that will asynchronously load the div or other HTML element with more data
easy