Таким образом, вам нужно, чтобы ссылки на вашей странице направляли пользователя на тот же URL, но с другим значением "page". Наиболее очевидный способ сделать это состоит в том, чтобы ваш код, который отображает ссылку на страницу, извлекал строку запроса из текущего запроса, изменял значение «страницы» и отображал ссылку, используя измененную строку.
В качестве альтернативы, и этот подход я выбрал, вы можете определить новый маршрут для ваших страниц «списка», который включает любые значения подкачки и сортировки. Таким образом, они являются частью URL, но также очень просты в управлении вашим контроллером.
Пример, который включает значения сортировки и подкачки, может выглядеть примерно так:
routes.MapRoute(
"List",
"{controller}/List/{pageNumber}/{sortBy}/{sortOrder}/{pageSize}",
new { action = "List", sortBy = "Id", sortOrder = "Asc", pageNumber = 1, pageSize = 10 },
new { sortBy = @"[A-Za-z0-9+-]*", sortOrder = "Asc|Desc", pageNumber = @"\d{1,6}", pageSize = @"\d{1,6}" });
Очевидно, что ваш метод действия «Список» должен иметь возможность интерпретировать значения и обрабатывать данные соответственно. Возможно, это не то, что вы действительно ищете, но я просто подумал, что выкину это туда.
ASIDE: я также написал атрибут фильтра действий [List], который выбирает эти значения из маршрута и (если модель является коллекцией) автоматически применяет сортировку и разбиение на страницы в OnActionExecuted. Таким образом, все, что мне нужно сделать, это извлечь данные и установить модель.