1
我想編寫一個規則來映射一個URL,但這樣我沒有得到我想要的結果。我至今這條規則:在MVC應用程序中添加路由規則
routes.MapRoute(
"Search", // Route name
"{controller}/{action}/{product}/{page}", // URL with parameters
new { controller = "Home", action = "Search", product = UrlParameter.Optional, page = UrlParameter.Optional } // Parameter defaults
);
使用這個我能做到到目前爲止這樣的結果:
localhost:8493/home/search/myproduct
localhost:8493/home/search/myproduct/2
,但我想這樣做:
因此,這將路線到home/search/myproduct
我已經嘗試過以下,但它沒有工作:
routes.MapRoute(
"DirectSearch", // Route name
"{product}/{page}", // URL with parameters
new { controller = "Home", action = "Search", } // Parameter defaults
);
有沒有辦法做到這一點?
地址:
所以在這裏我添加了特定路由映射到另一個動作,但它不工作:
routes.MapRoute(
"Tuna",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Tuna", id = UrlParameter.Optional }
);
謝謝。我也有這條路線,但是它的底部非常的平坦。我不知道它從上到下讀取,但現在我做:-) – SherCoder 2012-08-13 17:59:20
好吧,我只是注意到一個問題。所以現在如果我嘗試在同一個/不同的控制器中執行另一個操作,它將控制器名稱作爲「product」的值。你有什麼建議可以解決這個問題嗎?謝謝 – SherCoder 2012-08-13 18:17:59
這是超特定路由映射的風險之一。您需要編寫特定路線以滿足特定需求。 – 2012-08-13 18:23:01