MVC 2 RC RedirectToAction让人痛苦

时间:2010-02-25 15:51:33

标签: asp.net-mvc asp.net-mvc-routing redirecttoaction

我已经设置了我的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" });

任何帮助将不胜感激!

由于

乔纳森

2 个答案:

答案 0 :(得分:4)

过失!!!我发现它需要使用RedirectToRoute !!!!这样做可以解决问题!

return RedirectToRoute("Search", new { controller = "Search", action = "Results", searchterm = strsearchterm, type = inttype });

答案 1 :(得分:0)

我注意到MVC 2 RTM中的相同行为(我们在MVC 1中没有遇到这些问题)。希望能够指出两种方法之间如何处理路由的细节。我试图将RouteValueDictionary传递给RedirectToAction来完成同样的事情,但它从来没有在字典中为目标操作方法填充控制器和操作键。