Page_Load事件只触发一次

时间:2012-04-15 19:32:45

标签: asp.net events

我有一个asp.net网站,它有一个母版页和多个普通页面。母版页上有一个菜单栏,用户可以选择普通页面。我在其中一个普通页面的Page_Load事件中有代码。问题是,这个事件似乎只触发一次 - 用户第一次导航到页面。如果用户导航到另一个页面然后再返回,则不会触发该事件。谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:1)

如果用户用户Back浏览器浏览器按钮将使用您网页的缓存版本,如果您的网页正常且没有应用特定设置。这些代码会导致用户使用Back按钮向他/她显示任何内容:

Response.Cache.SetExpires(DateTime.Now.AddDays(-1)) ;
Response.Cache.SetValidUntilExpires(false) ;
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches) ;
Response.Cache.SetCacheability(HttpCacheability.NoCache) ;
Response.Cache.SetNoStore();

或者让prvent用户返回使用此代码:

<body onLoad="if(history.length>0)history.go(+1)"> 

答案 1 :(得分:0)

似乎问题是由浏览器缓存页面引起的,谢谢你指点我正确的方向。

问题不仅在使用后退按钮时出现,所以我担心防止这种情况无法解决问题。

我的解决方案是用服务器端asp.net按钮控件替换我用于菜单的简单html超链接。当后面的代码执行response.redirect时,目标页面的page_load事件似乎每次都会执行。