即使我的类没有从控制器或帮助器继承,我也想写入和读取数据到Session。像这样:
public class User
{
public void CreateSession()
{
Session["key"]=data;
}
public void ReadSession()
{
data=(string)Session["key"];
}
}
重要的是 - 我需要在某些操作中获取User
类的实例
和观点。我可以从控制器或继承User
类
帮手。因为我已经尝试过了,但是我遇到了一些错误。
我怎么能做到这一点? 提前谢谢。
答案 0 :(得分:1)
HttpContext.Session将起作用,它是一个静态的,可用于引用System.Web的程序集。
如果您的代码位于主网站程序集中,这应该可以正常运行。如果不是,您将不得不在System.Web上创建一个您可能想要或不想做的依赖。
答案 1 :(得分:1)
你应该在控制器中做这些事情。
您可以直接访问HttpContext,但这不是“ASP.NET MVC方式”,并且您首先放弃了使用MVC的一些优点。就像让测试更难,并直接将你的应用程序耦合到HttpContext ......
此外,如果它是新会话,或者由于某种原因未设置Session [“key”],data=(string)Session["key"];
将抛出空引用异常。