4

当我们转到另一个页面时运行的事件是什么。是卸载吗?

Protected Sub Edit_Unload(sender As Object, e As EventArgs) Handles Me.Unload

End Sub
4

4 回答 4

3

Unload发生在请求的末尾*。它与导航到其他页面没有任何关系。页面在单个请求的整个过程中“加载”和“卸载”;它出现的唯一原因是 Web 表单的东西在幕后发挥的魔力。

如果您想查看这是新加载还是回发,Page 类有一个IsPostBack属性,当页面中的某些内容触发对同一页面的回发时,该属性为真。如果它是假的,那么这是一个新的请求,应该得到适当的处理。

除此之外,除了跟踪会话中访问的最后一页之外,我不知道有什么方法可以判断某人何时专门转到另一个页面(而不是仅仅刷新当前页面)。

*(它被定义为页面生命周期中的最后一个事件,但如果请求因任何原因提前终止,则可能不会触发。重定向和传输是主要示例。)

于 2013-03-04T16:59:20.690 回答
2

UnloadASP.NET 页面生命周期中的最后一个事件。

文档

为每个控件引发,然后为页面引发。在控件中,使用此事件对特定控件进行最终清理,例如关闭特定于控件的数据库连接。对于页面本身,使用此事件来完成最后的清理工作,例如关闭打开的文件和数据库连接,或者完成日志记录或其他特定于请求的任务。

但是,当重定向到另一个页面时,可能不会调用此方法。

于 2013-03-04T16:58:50.380 回答
1

此链接可能对您有用:页面生命周期概述。尽管您不能依赖正在运行的事件,但这是一个很好的指南,可以显示它们运行的​​顺序(和时间)。

于 2013-03-04T16:59:34.483 回答
0

如果您希望在页面离开时捕获事件,您可以使用 javascript 调用服务器方法。尽管这可行,但您似乎无法在服务器代码中停止该进程。查看我开始的最后一个线程:

防止页面被重定向

在其中,我确实发布了一个示例,说明如何使用 javascript 检测页面即将离开并在此之前调用服务器方法。

于 2013-03-04T18:48:29.970 回答