我在考虑是否在每次页面访问(相同的浏览器会话)(如但客户端)时ViewState
始终可用自定义变量还是仅在页面回发时可用?Session
我知道这是客户端数据,始终与Request
数据包和Response
来自服务器的数据包一起封装。
我现在正在测试这个,我做了以下事情:
在 Home.aspx 上:
protected void Page_Load(object sender, EventArgs e)
{
ViewState["test"] = "test1";
}
protected void Button1_Click(object sender, EventArgs e)
{
string test = ViewState["test"].ToString();
Server.Transfer("Default.aspx");
}
在 Default.aspx 上:
protected void Page_Load(object sender, EventArgs e)
{
string test = ViewState["test"].ToString();
}
但我明白了NullReferenceException
。所以这意味着它ViewState["test"]
不存在,因为它ViewState
是全新的和再生的。所以我的结论是你ViewState
只能在表单回发时使用变量(但事实上,你总是在表单回发之后进行重定向,所以我不能总是使用 ViewState ......)。
我的观点对吗?