Browse all products (custom page route value key)

Product name Category
Product 71 Food
Product 72 Shoes
Product 73 Shoes
Product 74 Electronics
Product 75 Food
Product 76 Shoes
Product 77 Shoes
Product 78 Electronics
Product 79 Food
Product 80 Shoes

Razor code

@using MvcPaging.Demo.Models
@model IPagedList<Product>
@{
	ViewBag.Title = "Browse all products (custom page route value key)";
}
<h2>@ViewBag.Title</h2>
<table class="grid">
	<thead>
		<tr>
			<th>Product name</th>
			<th>Category</th>
		</tr>
	</thead>
	<tbody>
		@foreach (var product in Model)
		{
			<tr>
				<td>@product.Name</td>
				<td>@product.Category</td>
			</tr>
		}
	</tbody>
</table>
<div class="pager">
	@Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount).Options(o => o
			.PageRouteValueKey("Search.page")
			.AlwaysAddFirstPageNumber())
</div>

Controller code

public ActionResult CustomPageRouteValueKey(SearchModel search)
{
	int currentPageIndex = search.page.HasValue ? search.page.Value - 1 : 0;
	return View(this.allProducts.ToPagedList(currentPageIndex, DefaultPageSize));
}