2010-04-22 141 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 }) 

請注意參數的順序。