在同一页面上执行Response.Redirect时,我的ViewState得到清除

时间:2017-12-01 05:22:22

标签: c# asp.net vb.net

当我通过Response.Redirect将页面重定向到具有不同查询字符串的相同URL(到同一页面)时,我的视图状态被清除。

请向我提供在某处维护商店数据的视图状态数据的想法或替代方法,以便在同一页面上的Response.Redirect之后我可以获得该值 (该页面仅适用于新标签页)

会话将通过所有标签和页面向我提供数据 我只想在response.redirect之后将它放到一个页面。

2 个答案:

答案 0 :(得分:0)

Response.Redirect将清除ViewState,无论是否重定向到相同或不同的页面。 如果需要保留ViewState,请使用Ajax机制使用部分回发。 如果要使用Response.Redirect保留ViewState,请使用会话或查询字符串检索viewstate并将其带到重定向页面。

答案 1 :(得分:0)

显然,Response.RedirectPostBack是两回事。 Response.Redirect清除所有ViewState参数。如果您不愿意在会话中保存该值,我建议您在ViewstateQuerystring检查中发送PageLoad数据,检查Request.Querystring该值是否为空如果不是,那么再次在Viewstate中保存该值。

protected void Page_Load(object sender, EventArgs e)
{
    if(!isPostBack)
    {
          if(Request.QueryString["id"] != null)
          {
                  ViewState["id"]=Request.QueryString["id"];
          }
    }
}