响应.重定向将丢失视图状态

本文关键字:视图状态 重定向 响应 | 更新日期: 2023-09-27 18:33:25

假设,在页面(WebForms(的Page_Load((上,我创建了这个控件:

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

比,使用将使用链接按钮调用页面。在从此按钮调用的方法上,我更改了我以前的div 的类:

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

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

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

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

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

希望问题清楚。

响应.重定向将丢失视图状态

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

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