请问,.net如何在静态方法中进行重定向

阿狸Ahri 2018-03-11 01:42:51
具体情况是这样的,

我们公司封装有一个CurrentUser这个类,里面携带了当前登录人都信息的,这个是放在票据里面的

当他是空的时候,我们就跳转超时页面


string userCode = HttpContext.Current.User.Identity.Name;

if (userCode == "")
{
OnLineUser.RemoveUserFromLineBySessionID();
HttpContext.Current.Response.Redirect("~/Login.aspx");
}


这个在 后台的话,是没问题的。

但是如果是前台ajax提交到后台,用webmethod的时候,这个是不会触发的,所以给用户的感觉,无法重定向

这个如何处理
...全文
479 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuzhihzy123 2018-03-14
  • 打赏
  • 举报
回复
引用 12 楼 edfdfg 的回复:
[quote=引用 11 楼 qiuzhihzy123 的回复:] 将后台的内容组装成一段json,前台通过ajax调用后台,判断如果为空,返回调用状态sucess,组装跳转的路径生成一段json,前台解析json通过js实现跳转
对的,现在我写的ajax,如果用到currentUser的话,都是先判断是不是null,是Null,就引导前台重定向。 但是这个问题因为之前好多页面都有这个问题,我不想每一个页面都是给她改,我只能是我现在做的页面按照这个去弄,所以就想问问,有没有什么直接的办法[/quote] 如果你这种不行,那你就直接写session啊,当session超时时候,自动会销毁,你判断session是否为空就好了
阿狸Ahri 2018-03-13
  • 打赏
  • 举报
回复
引用 11 楼 qiuzhihzy123 的回复:
将后台的内容组装成一段json,前台通过ajax调用后台,判断如果为空,返回调用状态sucess,组装跳转的路径生成一段json,前台解析json通过js实现跳转
对的,现在我写的ajax,如果用到currentUser的话,都是先判断是不是null,是Null,就引导前台重定向。 但是这个问题因为之前好多页面都有这个问题,我不想每一个页面都是给她改,我只能是我现在做的页面按照这个去弄,所以就想问问,有没有什么直接的办法
ycoo 2018-03-13
  • 打赏
  • 举报
回复
引用 6 楼 edfdfg 的回复:
[quote=引用 3 楼 sp1234 的回复:] 找一个能理解 ajax 机制的程序员来设计程序吧。
我是来这里问问题的,不是听你嘲讽的,真的,很讨厌你这种人,每次问题都怕遇到你,我也不希望你来回答问题。 我是不懂,你那么厉害,我攀不起。 不回答就算了,每次都是这样。妈的,超级恶心。[/quote] 说出了大家的心声
qiuzhihzy123 2018-03-12
  • 打赏
  • 举报
回复
将后台的内容组装成一段json,前台通过ajax调用后台,判断如果为空,返回调用状态sucess,组装跳转的路径生成一段json,前台解析json通过js实现跳转
就是个菜鸟 2018-03-12
  • 打赏
  • 举报
回复
你试一下在后台方法中返回一个标识,比如为空返回一个值,在前台判断标识 来确定是否跳转到登录页面
正怒月神 版主 2018-03-12
  • 打赏
  • 举报
回复
把ajax和网页访问的分割开来。 作为两个方法。 1个最后是跳转页面 另一个最后是返回json字符串。
阿狸Ahri 2018-03-12
  • 打赏
  • 举报
回复
引用 1 楼 atmo 的回复:
这个只是后台给前台Response的数据,这个需要前台来配合,比如前台可以执行返回代码那么,HttpContext.Current.Response.write("<script>location.href='login.aspx'</script>"),如果前台 类似 if(result=="1"){location.href='login.aspx'} ,那么后台输出 HttpContext.Current.Response.write(1) 就可以
以前听 前辈说过 可以用什么 hanlder触发事件,我百度了,百度不出来,也忘记怎么用了
阿狸Ahri 2018-03-12
  • 打赏
  • 举报
回复
引用 1 楼 atmo 的回复:
这个只是后台给前台Response的数据,这个需要前台来配合,比如前台可以执行返回代码那么,HttpContext.Current.Response.write("<script>location.href='login.aspx'</script>"),如果前台 类似 if(result=="1"){location.href='login.aspx'} ,那么后台输出 HttpContext.Current.Response.write(1) 就可以
没有办法的,ajax之后,根本不接受repsone的,你就算写出这个都不会重定向的
阿狸Ahri 2018-03-12
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
找一个能理解 ajax 机制的程序员来设计程序吧。
我是来这里问问题的,不是听你嘲讽的,真的,很讨厌你这种人,每次问题都怕遇到你,我也不希望你来回答问题。 我是不懂,你那么厉害,我攀不起。 不回答就算了,每次都是这样。妈的,超级恶心。
hez2010 2018-03-11
  • 打赏
  • 举报
回复
不标记成static,指标记public就可以了
  • 打赏
  • 举报
回复
同样的道理,asp.net 程序员应该学过 Response.Redirect 机制,知道如何调试 dhtml 源内容、http消息内容。基于学过这些,才开发。
  • 打赏
  • 举报
回复
找一个能理解 ajax 机制的程序员来设计程序吧。
atmo 2018-03-11
  • 打赏
  • 举报
回复
也就是说跳转要在前台完成
atmo 2018-03-11
  • 打赏
  • 举报
回复
这个只是后台给前台Response的数据,这个需要前台来配合,比如前台可以执行返回代码那么,HttpContext.Current.Response.write("<script>location.href='login.aspx'</script>"),如果前台 类似 if(result=="1"){location.href='login.aspx'} ,那么后台输出 HttpContext.Current.Response.write(1) 就可以

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧