无法访问HttpContext.Current
我无法访问HttpContext.Current与我的项目MVC4与C#4.5
我在我的项目中添加了对System.Web的引用,并在我的控制器页面上添加了使用说明…
但是我只能访问currentHandler …
var context = HttpContext.CurrentHandler; //Current
HttpContext.Current
在C#4.5上被弃用了吗?
我已经看过这个帮助页面: http : //msdn.microsoft.com/en-us/library/system.web.httpcontext.aspx
您是否在应用程序中包含了System.Web
程序集?
using System.Web;
如果没有,请尝试指定System.Web
命名空间,例如:
System.Web.HttpContext.Current
这是因为你指的是名为HttpContext
的控制器的属性。 要访问当前上下文,请使用完整的类名称:
System.Web.HttpContext.Current
然而,这是非常不build议在ASP.NET MVC中访问这样的上下文,所以是的,你可以把System.Web.HttpContext.Current
想象成在ASP.NET MVC中被弃用。 访问当前上下文的正确方法是
this.ControllerContext.HttpContext
在这里添加一点来缓解混乱。 尽pipe达伦·戴维斯(接受)的答案更直接,但我认为安德烈的答案是MVC应用程序的更好方法。
从Andrei的答案意味着你可以像使用System.Web.HttpContext.Current
一样使用HttpContext
。 例如,如果你想这样做:
System.Web.HttpContext.Current.User.Identity.Name
你应该这样做:
HttpContext.User.Identity.Name
两者都取得了相同的结果,但(再次)在MVC方面 ,后者更受推荐。
关于这个问题的另一个好的和直接的信息可以在这里find: MVC ASP.NET中的HttpContext.Current和Controller.Context之间的区别 。