我在考虑是否在每次页面访问(相同的浏览器会话)(如但客户端)时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 ......)。
我的观点对吗?