这是我之前在此论坛上提出的问题的修改。
我的控制器操作:
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+" }
);
我的目标是为搜索结果提供分页链接。问题是当我点击分页链接中的任何页面时,它会给我一个空的serach术语的搜索结果。 除了页码参数之外,我如何传递搜索项参数,这是一个字符串? 我应该在路由中添加什么?
答案 0 :(得分:0)
我认为如果您在路线值字典中添加未在路线中定义的其他内容,则会将它们添加为获取参数。
所以,如果你做了类似的事情:
Url.Action("SearchResults", new { page = i, searchterm = "YourSearchTerm" })
它应该吐出像SearchResults/Page2?searchterm=yousearchterm
HTHS,
查尔斯
答案 1 :(得分:0)
您是否在Html.PageLinks助手中尝试过这个?
Url.Action("SearchResults", new { searchTerm = "your query", page = i })
注意参数的顺序。