J'ai deux contrôleurs, tous deux appelés AccountController
. L’un d’eux, appelons-le Controller A
, est dans un Area
appelé Admin
et l’autre, appelez-le Controller B
, n’est en aucun Area
( Je suppose que cela signifie que c'est dans la valeur par défaut Area
?). Controller B
a un action method
appelé Login
. J'ai un action method
dans Controller A
, qui a cette ligne
return RedirectToAction("LogIn", "Account");
Le problème est que je reçois un 404
lorsque cette ligne est exécutée, car une tentative de redirection vers un action
dans Controller A
inexistant. Je veux appeler le action method
dans Controller B
. Est-ce possible?
Vous pouvez fournir le area
dans le paramètre routeValues
. Essaye ça:
return RedirectToAction("LogIn", "Account", new { area = "Admin" });
Ou
return RedirectToAction("LogIn", "Account", new { area = "" });
en fonction de la zone que vous visez.
Utilisez ceci:
return RedirectToAction("LogIn", "Account", new { area = "" });
Cela redirigera vers l'action LogIn
du contrôleur Account
dans la zone "globale".
Il utilise cette surcharge RedirectToAction
:
protected internal RedirectToRouteResult RedirectToAction(
string actionName,
string controllerName,
Object routeValues
)
Vous pouvez utiliser ceci:
return RedirectToAction("actionName", "controllerName", new { area = "Admin" });
Utilisez ceci:
return this.RedirectToAction<AccountController>(m => m.LogIn());