首页 新闻 会员 周边

MVC session过期后跳转到登录界面前怎么弹出提示框?

0
悬赏园豆:20 [已关闭问题] 关闭于 2016-05-11 10:33

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过期。

求帮忙。。。

Meng_meng的主页 Meng_meng | 初学一级 | 园豆:67
提问于:2016-05-10 17:13
< >
分享
所有回答(5)
0

使用ajax去访问action  如果Session过期 判断是否是Ajax请求
如果是 设置状态为401 ,并且response.End();
不是就执行你上边写的RedirectResult跳转
在ajax的error函数里获取状态码进行判断
可以参考如下文章
http://www.phperz.com/article/15/0522/61036.html

大杯美式不加糖不加奶 | 园豆:994 (小虾三级) | 2016-05-10 21:00
0

传一个数据到登录页面,

用js获取数据,如果是过期来的,先提示。

上帝之城 | 园豆:2549 (老鸟四级) | 2016-05-10 22:45
0

跳到登录页面传递一个参数。然后参数内容就是session过期提示。如果没有参数内容就不提示。

Action Login(string msg=""){

}

Supper_litt | 园豆:827 (小虾三级) | 2016-05-11 08:23
0

filterContext.Result = new RedirectResult("/SysHome/Login"); 这一步是服务端执行;

其实不建议你用这种方式提示,不过简单来说你可以加个参数,然后在登录页面判断参数信息,并且提示;

filterContext.Result = new RedirectResult("/SysHome/Login?session=false");

waiter | 园豆:1000 (小虾三级) | 2016-05-11 10:10
0

问题已解决。

新建了一个提示页面,页面上只有提示信息,和确认按钮。

session过期后先跳转到提示页,然后点击确认按钮,再跳转到登录页面。

Meng_meng | 园豆:67 (初学一级) | 2016-05-11 10:31

这个他能自动跳到这个提示页面吗,前端一直没有操作,session过期。然后就跳转了。

还是

session过期后,前端发送了一个请求,然后跳转到提示页面。

支持(0) 反对(0) 奶中有毒 | 园豆:155 (初学一级) | 2018-03-14 15:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册