44 votos

Redirigir a la Acción en otro controlador

Tengo dos controladores, AccountController. Uno de ellos, vamos a llamarlo Controller A, se encuentra en un Area llamado Admin y el otro, vamos a llamarlo Controller B, que no está en ninguna Area (supongo que es por defecto en la Area?). Controller B tiene un action method llamado Login. Tengo una action method en Controller A, que tiene esta línea

return RedirectToAction("LogIn", "Account");

El problema es que tengo un 404 cuando esta línea se ejecuta debido a que se realiza un intento de redirigir a un inexistente action en Controller A. Quiero llamar a la action method en Controller B. Es esto posible?

89voto

Rory McCrossan Puntos 69838

Usted puede suministrar a la area en la routeValues parámetro. Intente esto:

return RedirectToAction("LogIn", "Account", new { area = "Admin" });

O

return RedirectToAction("LogIn", "Account", new { area = "" });

dependiendo de la zona que estás buscando.

6voto

gdoron Puntos 61066

El uso de este:

return RedirectToAction("LogIn", "Account", new { area = "" });

Esto redirigirá a la LogIn acción en la Account de controlador en el "mundial" de la zona.

Es el uso de este RedirectToAction de sobrecarga:

protected internal RedirectToRouteResult RedirectToAction(
    string actionName,
    string controllerName,
    Object routeValues
)

MSDN

-11voto

sirbombay Puntos 72

Lo hice y funcionó bien :)

  return Redirect("/Login/Account");

KISS - mantenerlo simple cariño ;)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X