Перенаправление на действие в другом контроллере
У меня есть два контроллера, называемых AccountController
. Один из них, назовем его Controller A
, находится в Area
, называемом Admin
, а другой, позволяет называть его Controller B
, не находится ни в одном Area
(я думаю, это означает, что он по умолчанию Area
?). Controller B
имеет action method
, называемый Login
. У меня есть action method
в Controller A
, который имеет эту строку
return RedirectToAction("LogIn", "Account");
Проблема в том, что я получаю 404
, когда эта строка выполняется, потому что делается попытка перенаправить на несуществующий action
в Controller A
. Я хочу вызвать action method
в Controller B
. Возможно ли это?
Ответы
Ответ 1
Вы можете указать area
в параметре routeValues
. Попробуйте следующее:
return RedirectToAction("LogIn", "Account", new { area = "Admin" });
или
return RedirectToAction("LogIn", "Account", new { area = "" });
в зависимости от того, к какой области вы стремитесь.
Ответ 2
Используйте это:
return RedirectToAction("LogIn", "Account", new { area = "" });
Это будет перенаправлено на действие LogIn
в контроллере Account
в "глобальной" области.
Он использует эту перегрузку RedirectToAction
:
protected internal RedirectToRouteResult RedirectToAction(
string actionName,
string controllerName,
Object routeValues
)
MSDN