Два параметра в asp.net mvc route - PullRequest
       20

Два параметра в asp.net mvc route

0 голосов
/ 22 апреля 2010

Это модификация вопроса, который я задавал ранее на этом форуме.

Мое действие контроллера:

public ActionResult SearchResults(string searchTerm, int page)...

Мой взгляд:

<%= Html.PageLinks((int)ViewData["CurrentPage"], (int)ViewData["TotalPages"], i => Url.Action("SearchResults", new { page = i }))%>...

Записи маршрута:

routes.MapRoute(
            null,
            "SearchResults",
            new { controller = "Search", action = "SearchResults", page = 1 } // Defaults
        );

        routes.MapRoute(
          "Search",
          "SearchResults/Page{page}",
          new { controller = "Search", action = "SearchResults" },
          new { page = @"\d+" }
        );

Моя цель - иметь ссылки на страницы для результатов поиска. Проблема в том, что, когда я нажимаю любую страницу в ссылках на пейджинг, она дает мне результаты поиска пустого поискового термина. Как я могу передать параметр термина поиска, который является строкой в ​​дополнение к параметру номера страницы? Что я должен положить в маршрутизации?

Ответы [ 2 ]

0 голосов
/ 23 апреля 2010

Вы пробовали это в помощнике Html.PageLinks?

Url.Action("SearchResults", new { searchTerm = "your query", page = i })

Обратите внимание на порядок параметров.

0 голосов
/ 23 апреля 2010

Я думаю, что если вы добавите в свой словарь значений маршрута дополнительные элементы, которые не определены в вашем маршруте, он добавит их как параметры получения.

Так что если вы сделаете что-то вроде:

Url.Action("SearchResults", new { page = i, searchterm = "YourSearchTerm" })

Он должен выдвигать маршрут, подобный SearchResults/Page2?searchterm=yousearchterm

HTH,
Charles

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...