有人可以解释一下 ViewState 和 Session 之间的区别吗?
更具体地说,我想知道在页面的整个生命周期中保持对象可用(通过回发不断设置成员)的最佳方法。
我目前使用 Sessions 来执行此操作,但我不确定这是否是最好的方法。
例如:
SearchObject searchObject;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
searchObject = new SearchObject();
Session["searchObject"] = searchObject;
}
else
{
searchObject = (SearchObject)Session["searchObject"];
}
}
这允许我在页面上的其他任何地方使用我的 searchObject,但这有点麻烦,因为如果我更改任何属性等,我必须重置我的会话 var。
我在想必须有更好的方法来做到这一点,这样.NET 就不会在每次页面加载时重新实例化对象,而且还会将其置于 Page 类的全局范围内?