2011-12-06 100 views
1

我想做到这一点:RedirectToRoutePermanent不接受行动作为参数

return RedirectToRoutePermanent("Dealers", new { action = "Join" }); 

,而是我不得不这样做,使其工作:

return RedirectPermanent("/dealers/join"); 

加入是在行动经销商控制器和另一条路线可以很好地发送给经销商控制器。但是当我以这种方式尝试时,它没有发现路线时发生错误。有任何想法吗?

回答

0

根据MSDN参考,ReidrectToRoutePermanent接受一个字符串参数,它应该是路由名称而不是控制器名称。如果您依靠默认路线导航到/ dealers/join,则这不起作用。你的路由表是什么样的?你可以附上注册路线代码吗?此外,如果您在Controller操作方法范围内执行,我认为您需要一个方法RedirectToActionPermanent

0

可能有更好的方法,但是你可以在调用中将Url.Action()包含到你的方法中吗?

1
return RedirectToActionPermanent("Join", "Dealers"); 
0

您可以使用RedirectToRoutePermanent。 RedirectToRoutePermanent方法适用于RouteName。 所以,你需要传递你的RouteName作为第一个参数和Route参数作为第二个参数。

另外,您还需要提及控制器名称。 类似的,

return RedirectToRoutePermanent("YourRouteName", new { controller="Dealers", action = "Join" }); 

希望有所帮助。

相关问题