从非基于Web的项目执行Response.Redirect

Pos*_*Guy 2 c# asp.net

我创建了一个实用程序方法,其中包含一些try/catches.在那些尝试/捕获中,我需要使用HttpResponse重定向重定向客户.我似乎无法弄清楚如何在Web项目之外执行此操作.这个实用程序类是从我的ASP.NET Web项目中引用的,所以我只是将一些代码抽象到这个实用程序类中,所以我不再拥有请求对象.

我知道我可以HttpWebRequest在Web项目之外使用对象进行许多与Web相关的请求任务,但是在放入using System.Net;我的实用程序类之后似乎无法获得任何重定向方法.

Are*_*ren 5

你的文件顶部:

using System.Web;
Run Code Online (Sandbox Code Playgroud)

在你的功能:

HttpContext.Current.Response.Redirect("http://www.mysite.com/redirect");
Run Code Online (Sandbox Code Playgroud)

这种方式确实使您的库依赖于System.Web库,但您的代码不在Web项目中.它将获取HttpContext其调用请求的当前值.您可能希望进行一些空检查,如果从Web上下文调用此代码,您将获得一个NullReferenceException.

如果您正在使用WCF,那么您需要使用不同的上下文对象,我只是记不清它是什么.OperationContext也许?