有人可以解释一下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"]; } } 允许我在我的页面的任何地方使用我的search对象,但是这是很麻烦的,因为如果我改变任何属性等,我必须重置我的会议变种。 我想一定有更好的方法来做到这一点,所以.NET不会重新实例化对象,每次页面加载,但也把它放在Page类的全球范围内?