Pur*_*ome 84 asp.net-mvc httprequest
在我的ASP.NET MVC控制器中,我有一个需要一个HttpRequest对象的方法.我有权访问的只是一个HttpRequestBase对象.
无论如何我可以以某种方式转换这个?
我能做什么/应该做什么?
Cou*_*ero 66
你应该总是在你的应用程序中使用HttpRequestBase和HttpResponseBase,因为它们与不可能测试的具体版本相关(没有typemock或其他魔法).
只需使用HttpRequestWrapper类进行转换,如下所示.
var httpRequestBase = new HttpRequestWrapper(Context.Request);
Run Code Online (Sandbox Code Playgroud)
Kev*_*son 49
这是你的方法,所以你可以重写它HttpRequestBase吗?如果没有,你总是可以得到当前HttpRequest的HttpContext.Current.HttpRequest转嫁.但是,我经常在ASP.NET中提到的类中包含对HttpContext的访问:删除System.Web依赖项以获得更好的单元测试支持.
小智 30
你可以使用
System.Web.HttpContext.Current.Request
Run Code Online (Sandbox Code Playgroud)
这里的关键是你需要完整的命名空间来获得"正确的"HttpContext.
我知道问这个问题已经有4年了,但是如果这对某人有帮助的话,那就去吧!
(编辑:我看到Kevin Hakanson已经给出了这个答案......所以希望我的回答能帮助那些只是阅读答案而不是评论的人.):)
要在ASP.NET MVC4 .NET 4.5中获取HttpRequest,您可以执行以下操作:
this.HttpContext.ApplicationInstance.Context.Request
Run Code Online (Sandbox Code Playgroud)