viewstate在response.redirect上消失

rum*_*umi 3 c# asp.net viewstate

在我的asp.net c#页面上,我有两个带有ajax CalendarExtenders的文本框(开始和结束日期).用户选择开始日期然后选择结束日期.在选择结束日期时,我绑定我的网格,如下所示;

 protected void calEndDate_TextChanged(object sender, EventArgs e)
    {
        BindGrid();
    }
Run Code Online (Sandbox Code Playgroud)

在网格中,我有一个带有以下代码的命令按钮

 protected void gvAllRoomStatus_RowCommand(object sender, GridViewCommandEventArgs e)
    {    
        if (e.CommandName == "Manage")
        {    
            GridViewRow row = gvAllRoomStatus.Rows[Convert.ToInt16(e.CommandArgument)];    
            int BookingID = Convert.ToInt32(row.Cells[1].Text);              

            DataClassesDataContext context = new DataClassesDataContext();
                Session["BookingID"] = BookingID;
                Response.Redirect("CheckIn.aspx");
        }
    }
Run Code Online (Sandbox Code Playgroud)

当用户转到该页面并单击后退按钮时,所有选定的日期和gridview数据都会消失.任何想法为什么观点正在消失?

Tim*_*ter 9

ViewState属于当前Page.

看看:http://www.codeproject.com/Articles/37753/Access-ViewState-Across-Pages

是的,我们可以跨页面访问视图状态变量.仅当使用跨页面发布或Server.transfer将用户重定向到其他页面时,才可以执行此操作.如果使用Response.redirect,则无法跨页面访问ViewState.

所以你可以Server.Transfer改用或使用Session.