我正在使用分页方法来显示从我的数据库返回的搜索结果。我正在为每个额外的页面创建一个 Html.ActionLink,我想知道的是,您如何将搜索到的字符串放入 ActionLink 中?下面是我填充 div 的部分视图的一部分。它出现在结果之后,因此用户可以选择另一页结果。
<% if (Model.HasNextPage)
{ %>
<% for (var i = 1; i < Model.TotalPages; i++)
{ %>
<%= Html.ActionLink(i.ToString(), "MyPartialPage", "MyController", new { searchString = Cache[searchString], page = i }, new { @id = "SearchResults" })%>
<% } %>
<% } %>
MyController 看起来像:
public ActionResult SearchResults(string searchString, int? page)
{
var theResults = driverRepository.GetResults();
var searchResults = drivers.Where(q => q.Filename.Contains(searchString));
var paginatedDrivers = new PaginatedList<Driver>(searchResults, page ?? 0, pageSize);
return View("SearchResults", paginatedDrivers);
}
有一个文本框和按钮。用户键入搜索并按下按钮,该按钮会触发一些 javascript,这些 javascript 从文本框中获取文本并相应地发布到 SearchResults。
我想保留他们搜索的内容,因此当我构建 ActionLinks 时,搜索参数仍然存在。