如何在ASP.NET MVC中获取对HTTPRESPONSE的引用?
-
24-10-2019 - |
题
我正在打电话给第三方图书馆 System.Web.HttpResponse
. 。我看到我有一个 HttpResponseBase
, , 但不是 HttpResponse
像网络形式一样。
有没有办法获得 HttpResponse
?使用 MVC 3
.
编辑 :我试图用控制器方法来执行此操作。还纠正了套管。
解决方案
如果您需要与采用不可锁定类型的系统进行交互,则可以通过静态属性访问当前的HTTPContext system.web.httpcontext.current. 。 Httpresponse只是通过响应属性悬而未决。
其他提示
在MVC应用程序中,您可以使用 HttpContext.ApplicationInstance.Response
。这帮助我获得了 HttpResponse
在MVC应用程序中。
不,但是你 HttpResponseBase
可能是一个 HttpResponseWrapper
其中包含一个 HttpResponse
它的内部。所有 HttpResponse
可以从 HttpResponseBase
.
如果您想访问 HttpResponse
, ,然后您可以在其中添加参考 HttpContext.Items
在你的 IHttpHandler
或较早的ASP.NET生命周期中的某个地方。开始的事件将是一个很好的重点。
您的 HttpContext.Items
引用与同一词典 HttpContextBase.Items
参考文献,因此您可以访问MVC3中的所有这些项目
澄清,
它是一个 HttpResponseWrapper
, ,但是没有公共登录器 HttpResponse
. 。因此,没有直接访问的参考。要在框架决定开始给您包装器而不是基础引用之前直接访问参考,请为 HttpApplication.BeginRequest
事件。您的处理程序将提到 HttpContext
目的。放 HttpContext.Items["HttpRequest"] = HttpContext.Request
. 。然后在您的控制器中,您将能够访问 HttpRequest
参考 RequestContext.HttpContext.Items["HttpRequest"]
.