当我通过Response.Redirect将页面重定向到具有不同查询字符串的相同URL(到同一页面)时,我的视图状态被清除。
请向我提供在某处维护商店数据的视图状态数据的想法或替代方法,以便在同一页面上的Response.Redirect之后我可以获得该值 (该页面仅适用于新标签页)
会话将通过所有标签和页面向我提供数据 我只想在response.redirect之后将它放到一个页面。
答案 0 :(得分:0)
Response.Redirect将清除ViewState,无论是否重定向到相同或不同的页面。 如果需要保留ViewState,请使用Ajax机制使用部分回发。 如果要使用Response.Redirect保留ViewState,请使用会话或查询字符串检索viewstate并将其带到重定向页面。
答案 1 :(得分:0)
显然,Response.Redirect
和PostBack
是两回事。 Response.Redirect清除所有ViewState
参数。如果您不愿意在会话中保存该值,我建议您在Viewstate
和Querystring
检查中发送PageLoad
数据,检查Request.Querystring
该值是否为空如果不是,那么再次在Viewstate
中保存该值。
protected void Page_Load(object sender, EventArgs e)
{
if(!isPostBack)
{
if(Request.QueryString["id"] != null)
{
ViewState["id"]=Request.QueryString["id"];
}
}
}