为什么使用 ASP.NET 从另一个页面返回后 Page_Load 没有触发 - 因此是史诗般的尴尬:)

2024-04-02

假设我在同一个 ASP.NET C# 网站上有两个页面。

  • Page1.aspx 在 Page_Load 事件中执行操作
  • 我使用菜单导航到 Page2.aspx
  • Page2.aspx 然后做了一些事情响应.重定向返回Page1.aspx
  • Page1.aspx 这次无法在 Page_Load 事件中执行操作,因为它从未触发。

我尝试以声明方式关闭缓存,尝试在重定向中使用 true 作为 endResponse...似乎没有什么区别。

大家别介意!我是个白痴! 使用 Visual Studio Dev Localhost,重定向正在重定向到实时页面! :)


页面执行的原因不影响页面周期,Load事件always执行页面时触发。

因此,如果 Page_Load 有时不运行,那是因为该页面已缓存并且未在服务器上执行。该页面可以缓存在浏览器中、沿途某处的路由器中或使用服务器端页面缓存的服务器上。

如果您尚未为页面启用服务器端页面缓存,则会将其缓存在浏览器或网络中。您可以使用缓存设置来尝试消除这种情况:

Response.Cache.SetCacheability(HttpCacheability.NoCache);

这将阻止页面在正常情况下被缓存。 (还要检查您的浏览器是否处于离线模式,然后它将使用缓存中的任何内容,无论其可缓存性设置如何。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么使用 ASP.NET 从另一个页面返回后 Page_Load 没有触发 - 因此是史诗般的尴尬:) 的相关文章

随机推荐