当类不是从控制器或帮助器继承时,在MVC3中设置Session

时间:2012-01-30 14:52:17

标签: asp.net-mvc-3 session

即使我的类没有从控制器或帮助器继承,我也想写入和读取数据到Session。像这样:

 public class User
{

        public void CreateSession()
        {
            Session["key"]=data;

        }

        public void ReadSession()
        {
            data=(string)Session["key"];
        }


}

重要的是 - 我需要在某些操作中获取User类的实例  和观点。我可以从控制器或继承User类  帮手。因为我已经尝试过了,但是我遇到了一些错误。

我怎么能做到这一点? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

HttpContext.Session将起作用,它是一个静态的,可用于引用System.Web的程序集。

如果您的代码位于主网站程序集中,这应该可以正常运行。如果不是,您将不得不在System.Web上创建一个您可能想要或不想做的依赖。

答案 1 :(得分:1)

你应该在控制器中做这些事情。

您可以直接访问HttpContext,但这不是“ASP.NET MVC方式”,并且您首先放弃了使用MVC的一些优点。就像让测试更难,并直接将你的应用程序耦合到HttpContext ......

此外,如果它是新会话,或者由于某种原因未设置Session [“key”],data=(string)Session["key"];将抛出空引用异常。