判断用户是否登录,使用 HttpContext.Current.Response.Redirect 跳转到登录页面,会抛出异常。百度的结果是 Response.End 导致。
解决办法是使用 Response.Redirect ( url,bool )方法但是!!会继续执行之后的代码,还有说加 HttpContext.Current.ApplicationInstance.CompleteRequest 的也一样会执行之后的代码。
.net 就没有这种跳转需求吗?结束之后的代码不抛异常的?
1
Rwing 2019-07-12 14:35:14 +08:00
return?
|
2
arrow8899 2019-07-12 14:57:37 +08:00
重定向是客户端做的事啊,Response.Redirect 只是给客户端返了个 302,服务端的逻辑可以继续执行,你不想继续执行就 return。
|
5
yulitian888 2019-07-12 15:23:10 +08:00 1
因为没有结束请求的响应过程,加上 CompleteRequest 就好了
我写的一个扩展方法,直接引用了就可以用 response 实例.RedirectTo("地址")来跳了 public static class HttpRedirect { public static void RedirectTo(this HttpResponse response, string url) { if (response.IsRequestBeingRedirected) { return; } response.Redirect(url, false); var context = HttpContext.Current; if (context != null) { context.ApplicationInstance.CompleteRequest(); } } } |