我已经设置了我的global.asax中定义的自定义路由:
routes.MapRoute(
"Search", "{controller}/{action}/{type}/{searchterm}",
new { controller = "Search", action = "Results", type = "", searchterm = "" }
);
现在我想在控制器中通过POST传递数据时基本上都采用以下格式:
http://localhost/Search/Results/2/RG12%201JD
相反发生的事情是:
http://localhost/Search/Results?type=1&searchterm=RG12%201JD
我做错了什么,有问题的代码是:
return RedirectToAction("Results",new {type = "1", searchterm = "RG12%201JD" });
任何帮助将不胜感激!
由于
乔纳森
答案 0 :(得分:4)
过失!!!我发现它需要使用RedirectToRoute !!!!这样做可以解决问题!
return RedirectToRoute("Search", new { controller = "Search", action = "Results", searchterm = strsearchterm, type = inttype });
答案 1 :(得分:0)
我注意到MVC 2 RTM中的相同行为(我们在MVC 1中没有遇到这些问题)。希望能够指出两种方法之间如何处理路由的细节。我试图将RouteValueDictionary传递给RedirectToAction来完成同样的事情,但它从来没有在字典中为目标操作方法填充控制器和操作键。