Параметр Persist QueryString в RouteLink - PullRequest
0 голосов
/ 02 апреля 2009

Я реализую базовую функцию поиска для сайта, над которым я работаю. На данный момент самым чистым способом является создание действия с сигнатурой метода, похожей на:

//
// GET: /BeautySchoolDropouts/Search?page=2&q=grease

public ActionResult Search(int? page, string q)
{
  //Implementation
}

У меня есть некоторый код на странице результатов поиска, который предоставляет ссылки на страницы, похожие на:

<%= Html.RouteLink("<< Previous Page", new { page = (Model.PageIndex - 1) }) %>

<%= Html.RouteLink("Next Page >>", new { page = (Model.PageIndex + 1) }) %>

Поскольку я предоставляю значения маршрута как часть метода RouteLink, невозможно ли сохранить q = какую-либо часть строки запроса? Прямо сейчас ссылки генерируют только / BeautySchoolDropouts / Search? Page = 2, что, очевидно, вызывает проблемы, потому что я понятия не имею, для чего был выполнен поиск.

1 Ответ

1 голос
/ 02 апреля 2009

Я думаю, что это будет работать, если вы поместите строку запроса в модель где-то (этот код использует Model.QueryString; обратите внимание, когда я говорю здесь «строка запроса», я говорю о параметре запроса, а не HTTP-запрос строка); Я не думаю, что вы хотите сохранить всю строку запроса, потому что тогда вы получите? Page = 1 & q = что бы то ни было & page = 2 & page = 3.

<%= Html.RouteLink("<< Previous Page", new { page = (Model.PageIndex - 1), q = Model.QueryString }) %>

<%= Html.RouteLink("Next Page >>", new { page = (Model.PageIndex + 1), q = Model.QueryString }) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...