Je suis venu avec un problème que je ne sais pas comment résoudre.Comment rediriger la page lorsque l'appel à l'action filterContext.Result a été effectué dans la méthode ajax?
Le contexte de mon problème est basé sur le besoin de rediriger l'utilisateur vers Login lorsqu'une variable de session est perdue.
Ce que nous faisons est une décoration sur les actions du contrôleur que prévisualisations pour exécuter l'action, valident cette variable de session intitulée [ « SesionesPorUsuarios »] où il est différent de null
Quelque chose comme ceci:
[HttpPost]
[IndicadorUltimaAccionDelSistema()]
public JsonResult ConsulteLosProductos(string elAliasDelTipoDeProducto)
{
//stuffs...
}
Et puis comme ceci:
public class IndicadorUltimaAccionDelSistema : ActionFilterAttribute
{
/stuffs...
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (HttpContext.Current.Session["SesionesPorUsuarios"] != null)
{
/stuffs...
}
else
{
/stuffs...
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary
{
{ "action", "Login" },
{ "controller", "Login" }
});
}
}
}
notre action de connexion est:
public ActionResult Login()
{
return View();
}
Nous avons eu le problème, lorsque l'action est appelée dans une méthode ajax comme .post de $()
La méthode post reçoit toute la vue retournée par l'action « Connexion », mais il ne pas les redirections l'utilisateur à la page de connexion, la méthode post obtient tout le html retourné par l'action "Login" et il le traite comme un objet JSON.
Tout le monde sait comment nous pouvons résoudre ce problème, ou ce workarround pouvons-nous demander la nécessité
Merci ...
Merci pour votre commentaire et prendre le temps de répondre à ma question. Le problème avec cette solution, est que nous devons changer tout le code sur chaque méthode post appel d'action. S'il n'y a pas une autre solution, nous aply quelque chose comme ça, même si cela signifie que les régressions possibles. Merci encore pour votre temps. – mmadrigal