我一直在使用 session 数组为我的 web 部件存储状态变量...所以我有一个这样的属性:
public INode RootNode
{
get
{
return this.Context.Session["RootNode"] as INode;
}
set
{
this.Context.Session["RootNode"] = value as object;
}
}
这通常工作正常。我发现有时,context.session 变量将为空。
我想知道首先导致 session 为 null 的条件是什么,发生这种情况时保留我的对象的最佳方法是什么?我可以只为上下文分配一个新的 HttpSessionState 对象吗?否则这会把事情搞砸吗?
编辑:好的,所以不仅仅是空 session ...整个上下文都搞砸了。当 webpart 进入 init 时,上下文很好......但是当它到达 dropbox selectedindexchange 回发事件(dropbox 包含用于设置 rootnode 变量的节点 id)时,上下文主要包含空属性。
此外,它似乎只在选择了某些 ID 时才会发生。这看起来更像是我这边的某种奇怪错误,而不是我对 session 的理解问题。
最佳答案
System.Web.HttpContext.Current.Session
但是,上下文并不依赖于类,例如。这取决于正在使用的页面/处理程序的上下文。
-西奥
关于c# - webpart context.session 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2518186/