MVC项目中 session过期后跳转到登录界面
我新建了一个控制器重写了OnActionExecuting方法
/// <summary> /// 重写基类在Action之前执行的方法 /// </summary> /// <param name="filterContext"></param> protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); if (Session["USERID"] == null || Session["USERNAME"] == null) { filterContext.Result = new RedirectResult("/SysHome/Login"); } }
然后其他控制器调用该控制器,
可以正常跳转到登录界面。
但是不知道怎么能在跳转之前弹出提示框,提示一下session过期。
求帮忙。。。
使用ajax去访问action 如果Session过期 判断是否是Ajax请求
如果是 设置状态为401 ,并且response.End();
不是就执行你上边写的RedirectResult跳转
在ajax的error函数里获取状态码进行判断
可以参考如下文章
http://www.phperz.com/article/15/0522/61036.html
传一个数据到登录页面,
用js获取数据,如果是过期来的,先提示。
跳到登录页面传递一个参数。然后参数内容就是session过期提示。如果没有参数内容就不提示。
Action Login(string msg=""){
}
filterContext.Result = new RedirectResult("/SysHome/Login"); 这一步是服务端执行;
其实不建议你用这种方式提示,不过简单来说你可以加个参数,然后在登录页面判断参数信息,并且提示;
filterContext.Result = new RedirectResult("/SysHome/Login?session=false");
问题已解决。
新建了一个提示页面,页面上只有提示信息,和确认按钮。
session过期后先跳转到提示页,然后点击确认按钮,再跳转到登录页面。
这个他能自动跳到这个提示页面吗,前端一直没有操作,session过期。然后就跳转了。
还是
session过期后,前端发送了一个请求,然后跳转到提示页面。