2010-04-22 143 views
0

这是对我在此论坛上提出的问题的修改。asp.net mvc路由中的两个参数

我的控制器动作:

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+" } 
     ); 

我的目标是对搜索结果分页链接。问题是,当我点击分页链接中的任何页面时,它会给我一个空的分词术语的搜索结果。 除了页码参数外,如何传递除字符串以外的搜索字词参数? 我应该在路由中放什么?

回答

0

我想如果你添加额外的东西到你的路由中没有定义的路由值字典中,它会将它们添加为get参数。

所以,如果你是这样的:

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

应该吐出像SearchResults/Page2?searchterm=yousearchterm

HTHS路线,
查尔斯

0

你试试这个在Html.PageLinks帮手?

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

请注意参数的顺序。