转载

爱上MVC~ajax调用分部视图session超时页面跳转问题

回到目录

这个问题出现了很多年了,都没有解决,问题是这样的,有一个需要授权才可以访问的分部视图,在一个view中使用ajax的方法去调用它,然后更新页面的局部DIV,这时,如果你长时间不操作,session会超时,这是正常的,但在超时时,如果你再调用ajax方法,这时你的页面跳转将会在DIV局部完成,这是我们不希望看到的!

爱上MVC~ajax调用分部视图session超时页面跳转问题

事实上,引起这个问题的原因是MVC内部跳转机制的问题,它只到在当前的action所渲染的view上进行跳转,如果我们希望在当前页面跳,需要将MVC方法改为JS方法,代码如下

    filterContext.Result = new RedirectToRouteResult("Default", new RouteValueDictionary {                        { "Action",_failActionName },                       { "Controller", _failControllerName},                        { "returnUrl", returnUrl} }); 

修改成JS的方式

  string url = new UrlHelper(filterContext.RequestContext).Action(                 _failActionName,                 _failControllerName,                 new                 {                     returnUrl = returnUrl                 });   //防治ajax调用分部视图出现登陆超时,在局部跳转URL的问题    filterContext.HttpContext.Response.Write("<script>location.href='" + url + "'</script>");    filterContext.HttpContext.Response.End(); 

这几行代码就可以解决几年困扰我的问题了,所以,对于一个问题的解决需要我们仔细去研究,去思考!

回到目录

原文  http://www.cnblogs.com/lori/p/5484718.html
正文到此结束
Loading...