Response.Redirect会丢失ViewState吗?

时间:2012-05-08 08:19:23

标签: c# .net redirect viewstate

假设,在我创建此控件的页面(WebForms)的Page_Load()上:

HtmlGenericControl optionBox = new HtmlGenericControl("div");
optionBox.Attributes["class"] = "class_1";

然后,用户将使用LinkBut​​ton调用该页面。在从这个按钮调用的方法上,我改变了我之前div的类:

protected void cmdCerca_Click(object sender, EventArgs e)
{
    ...
    div.Attributes.Add("class", "class_2");
    ...
}

好吧,如果我观察渲染的结果,我会看到div的类已被更改。

这意味着,在下一次调用此页面时(从此上下文中调用cmdCerca_2_Click的示例),将从View中恢复该对象,获取class_2,而不是class_1

但是,如果在cmdCerca_Click的末尾,我使用Response.Redirect()调用同一页面,则不会发生这种情况。似乎视图将丢失。

为什么呢?我该如何解决?

希望问题很明确。

1 个答案:

答案 0 :(得分:2)

您需要在页面init事件中添加控件,而不是加载,以便将它们放入控件树中。

您必须在每次回发时重新创建此控件吗?在这种情况下,每次都会设置默认类。