quand il y a une valeur dans ma variable de session mes appels ajax fonctionnent correctement ... Mais quand une session est TimedOut il ne semble pas fonctionner retour résultat JSON vide ....Pourquoi les appels jquery ajax échouent après le délai d'expiration de la session dans asp.net mvc?
public JsonResult GetClients(int currentPage, int pageSize)
{
if (Session["userId"]!=null)
{
var clients = clirep.FindAllClients(Convert.ToInt32(Session["userId"])).AsQueryable();
var count = clients.Count();
var results = new PagedList<ClientBO>(clients, currentPage - 1, pageSize);
var genericResult = new { Count = count, Results = results ,isRedirect=false};
return Json(genericResult);
}
else
{
var genericResult = new {redirectUrl = Url.Action("Create", "Registration"), isRedirect = true };
return Json(genericResult);
}
}
Cependant d'autre part does'nt semblent fonctionner ....
success: function(data) {
alert(data.Results);
if (data.isRedirect) {
window.location.href = data.redirectUrl;
}
}
EDIT:
Mon Global.asax a cela,
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Clients",
"Clients/{action}/{id}",
new { controller = "Clients", action = "Index", id = "" }
);
routes.MapRoute(
"Registrations",
"{controller}/{action}/{id}",
new { controller = "Registration", action = "Create", id = "" }
);
}
Que fait-il réellement lorsque la session a expiré? Est-ce qu'il retourne un objet JSON? –
@matthew ya il renvoie un objet json mais il n'est pas redirigé vers ma vue Login à la place il reste dans la même vue ... –
Ouvrez votre page dans Firefox avec Firebug et mettez un point d'arrêt sur le sur l'alerte (données. Résultats), vous devriez alors pouvoir inspecter l'objet. Typiquement avec javascript, si une erreur survient, l'exécution du bloc de script courant se termine. Vous devez savoir si les propriétés auxquelles vous essayez d'accéder sont réellement disponibles dans l'objet. Aussi, essayez simplement "location.href" pour voir si cela fait une différence. –