RedirectToRoutePermanent不接受Action作为参数

本文关键字:参数 Action 不接受 RedirectToRoutePermanent | 更新日期: 2023-09-27 18:17:03

我想这样做:

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

但是我必须这样做才能使它工作:

return RedirectPermanent("/dealers/join");  

Join是Dealers控制器中的一个动作,另一个路由可以很好地路由到Dealers控制器。但是当我尝试这样做时,它会出现错误,没有找到路由。什么好主意吗?

RedirectToRoutePermanent不接受Action作为参数

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

基于MSDN引用,ReidrectToRoutePermanent接受一个字符串参数,该参数应该是路由名而不是控制器名。如果你依赖默认路由导航到/dealers/join,那么这将不起作用。你的路由表是什么样的?你能附上注册路由代码吗?此外,我认为你想要一个方法RedirectToActionPermanent如果你在控制器操作方法范围内执行。

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

你可以使用RedirectToRoutePermanent。RedirectToRoutePermanent方法与RouteName一起工作。所以,你需要传递RouteName作为第一个参数,Route参数作为第二个参数。

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

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

希望帮助。