Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我们可以在页面的卸载事件中访问viewstate和会话对象吗_C#_Asp.net - Fatal编程技术网

C# 我们可以在页面的卸载事件中访问viewstate和会话对象吗

C# 我们可以在页面的卸载事件中访问viewstate和会话对象吗,c#,asp.net,C#,Asp.net,我们是否可以在页面的卸载事件中访问viewstate和会话对象。当然可以,请尝试以下操作: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Session("test") = "testing" End Sub Protected Sub Page_Unload(ByVal sender As Object, ByVal

我们是否可以在页面的卸载事件中访问viewstate和会话对象。

当然可以,请尝试以下操作:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles 

Me.Load
        Session("test") = "testing"
    End Sub

    Protected Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Unload
        Dim str As String = Session("test")
        Response.Write(str)
    End Sub
一旦页面响应被发送到客户端浏览器,就会调用“unload”事件。在此事件中,除了清除资源(即文件/数据库句柄等),通常没有其他有用的操作

卸载在页面完全呈现、发送到客户端并准备丢弃后调用。此时,将卸载响应和请求等页面属性,并执行任何清理

[……]

在卸载阶段,页面及其控件已呈现,因此您无法对响应流进行进一步更改。如果尝试调用Response.Write方法等方法,页面将抛出异常。(来自)


您可能能够读取viewstate,当然不能更改它,对于会话,这一点也适用。您试图实现什么目标?

在另一个事件中,保存要保存的视图状态

然后在卸载
页面中,调用
this.SaveViewState()
。已保存的视图状态将随任何更改而更新


我之所以需要这样做,是为了在动态创建的控件中捕获用户的输入。

您试图完成什么?因此,当它们被丢弃时?如果不是在卸载事件调用响应时。在卸载事件中写入将导致异常-此时页面已发送到客户端。