0

我有兩個路線:圖路線,querystings和MVC

routes.MapRoute(
      "FetchVenue",          
      "venue/fetchlike/{q}",          
      new { controller = "venue", action = "fetchlike" }  
     ); 

     routes.MapRoute(
      "venue",           
      "venue/{venueId}",         
      new { controller = "Venue", action = "Index" } 
); 

的URL /地點/ fetchlike /測試被傳遞給正確的控制器 的URL /地點/ fetchlike/Q =測試然而傳遞到?索引行動。

我希望能夠將數據作爲查詢字符串傳遞。

我在做什麼錯?

回答

2

剛剛送走我的頭頂,不應該你的URL看起來像/venue/fetchlike?q=test,而不是/venue/fetchlike/?q=test

+0

/場地/ fetchlike?Q =測試仍然會映射到指定的路線「場地」 難倒:( – iasksillyquestions 2008-12-18 09:23:05

3

其實這個問題是該路線:

routes.MapRoute("FetchVenue", "venue/fetchlike/{q}", new { controller = "venue", action = "fetchlike" }); 

實際上應該已經:

routes.MapRoute("FetchVenue", "venue/fetchlike", new { controller = "venue", action = "fetchlike" }); 

這意味着網址應該是:

/場地/像fetchlike?q =測試

如上面通過strelokstrelok建議。

因此,在查詢參數的情況下,您不必在路線中定義它們!

+2

沒錯!路由不應該有查詢字符串參數在其中。對於路線匹配的目的,查詢字符串被忽略。當生成URL時,我們將額外提供的參數附加到查詢字符串。 – Haacked 2008-12-31 23:51:51