我正在为我正在处理的网站实施基本搜索功能。到目前为止,最干净的方法似乎是创建一个方法签名类似于:
的动作//
// 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,这显然会导致问题,因为我不知道搜索的内容。
答案 0 :(得分:1)
我认为这可以用来假设你把查询字符串放在某个地方的模型中(这段代码使用的是Model.QueryString;注意我在这里说“查询字符串”时,我说的是查询参数,而不是HTTP查询串);我不认为你想要保留整个查询字符串,因为那样你会得到?page = 1&amp; q = whatever&amp; page = 2&amp; 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 }) %>