在另一个控制器中redirect到操作
我有两个控制器,都称为AccountController
。 其中之一,让我们称之为Controller A
,在一个Area
称为Admin
和另一个,让我们称之为Controller B
,不在任何Area
(我想这意味着它在默认Area
?)。 Controller B
有一个称为Login
的action method
。 Controller A
有一个action method
,它有这一行
return RedirectToAction("LogIn", "Account");
问题是我得到一个404
当这条线被执行,因为试图redirect到Controller A
不存在的action
。 我想调用Controller B
的action method
。 这可能吗?
您可以在routeValues
参数中提供该area
。 尝试这个:
return RedirectToAction("LogIn", "Account", new { area = "Admin" });
要么
return RedirectToAction("LogIn", "Account", new { area = "" });
取决于你要瞄准哪个领域。
用这个:
return RedirectToAction("LogIn", "Account", new { area = "" });
这将redirect到“全局”区域中的Account
控制器中的LogIn
操作。
它使用这个RedirectToAction
重载:
protected internal RedirectToRouteResult RedirectToAction( string actionName, string controllerName, Object routeValues )
MSDN