How do I create the correct route values for this ActionLink?

Viewed 89106

The Model of SearchResults.aspx is an instance of PersonSearch; when the request for a new page arrive (a GET request), the action method should take it and compute the new results.

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult SearchResults(PersonSearch search, int? page)
{
    ViewData["Results"] = new PaginatedList<Person>(_searchService.FindPersons(search), page ?? 0, 1);
    return View("SearchResults", search);
}

Then I have to generate the previous/next links:

<%= Html.ActionLink("Next Page >", "SearchResults", routeValues) %>

If I use routeValues = ViewData.Model I can see the object properties passed the address, but I can't add the "page" parameter.

5 Answers

You need to override ToString().

You need use RouteLink instead ActionLink. Your code should look something like this

@Html.RouteLink("Next", new {controller = "SearchResults", action = "Index", search=samevalue, page=1 }) 
Related