我正在打电话给第三方图书馆 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"].

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top