paging in asp.net mvc

asp.net, asp.net-mvc, paging

Solution

I would just define a custom route with the page number in it:

routes.MapRoute(
                "Books", // Route name
                "books/{page}", // URL with parameters
                new {controller = "Books", action = "List", page = 1}
                );

Will give you this kind of Url:

http://localhost/books/4/

Then in your controller action you get this page number:

public BooksController
{
    public ActionResult List (int page)
    {
        /* Retrieve records for the requested page from the database */

        return View ();
    }
}

So your view will not actually be aware of the current page. It will just display a list of supplied records.

You will also need to generate links to various pages either in this view directly or maybe in your master page.

Problem

i have an asp.net website where i do paging through on the code behind using: ``` PagedDataSource objPds = new PagedDataSource { DataSource = ds.Tables[0].DefaultView, AllowPaging = true, PageSize = 12 }; ``` what is the equivalent best way of doing paging for asp.net-mvc. I would think this would actually belong in the view code.

Original source