2011-07-20 49 views
0

当我尝试从控制器访问HttpContext.Current时出现错误。 我想获得会话以添加一些会话特定的数据,这给我一个问题:mvc 2中的HttpContext问题

var a = HttpContext.Current.Session;

错误,据称是'System.Web.HttpContextBase'不包含'当前'的定义。

回答

0

当我尝试从控制器

你永远不应该使用HttpContext.Current访问HttpContext.Current。

只需使用Session属性来访问会话:

public ActionResult Index() 
{ 
    Session["foo"] = "bar"; 
    ... 
} 

原因你所得到的错误是因为控制器类已经有一个名为HttpContext属性,因此当你写HttpContext.Current它的属性,而不是HttpContext类中的静态Current属性。

+0

谢谢!这解决了它。另一方面,如何从你编程和导入的类中整齐地检索会话对象?我没有控制器以外的会话对象,我认为。 –

+0

@Bruno Figares,你绝对不应该使用ASP.NET MVC标准类以外的会话来访问会话(控制器,动作过滤器,帮助器......)。所以你的自定义类不会从会话中获取数据。这是不好的做法。你把这些数据从控制器传给他们...... –