按下“后退”按钮时,某些用户控件未加载

时间:2011-12-14 15:14:26

标签: asp.net vb.net user-controls

我正在使用ASP.NET和VB.NET。

我有一个包含5个用户控件的页面。 页面本身不执行任何操作,它只是向用户显示用户控件。

当我进入页面或刷新时,用户控制工作正常,但当我转到另一个页面,然后按“返回”时,只显示我的两个用户控件,并且它们不能像他们一样工作应该!

控件的简短说明:

  • 2个控件,用于查看用户是否必须创建某些内容并显示选项。 (转到DB)
  • 2个控件显示概述(如果需要)(转到数据库)
  • 1控件查看用户是否为管理员(不进入数据库,但查看securityContext)

所以会发生什么:

前三个控件没有显示出来 1控件显示其默认状态(虽然取决于用户不应该) 管理控件始终显示管理员链接,即使用户不是管理员

我已经尝试过查看缓存(禁用,启用),我尝试过欺骗视图状态,我尝试过使用占位符,page_init,..

似乎没有什么工作可行,我希望这实际上有效,因为我很确定用户会这么做。当我刷新一切都像它应该再次工作,因为服务器再次联系..

我该怎么办? :/

一些代码:

<pm:MenuA ID="MenuA" runat="server" />
<pmm:MultiStepMenuA ID="MultiStepMenuA" runat="server" />
<rm:MenuB ID="MenuB" runat="server" />
<mm:MenuC ID="MenuC" runat="server" />
<br />
<am:AdminMenu ID="AdminMenu" runat="server" />

重要更新:我对Firefox没有这个问题,只有IE9:/

2 个答案:

答案 0 :(得分:1)

责备互联网资源管理器..

显然它继续使用旧版本的网站“提高速度”。我删除了我的历史记录,并取消选中“保留最喜欢的网站数据”。

之后它起作用了。旧页面消失了,它被更新的版本所取代。

非常感谢,我希望这可以帮助别人!

答案 1 :(得分:0)

此问题的最简单解决方案是在页面顶部添加以下指令,以防止IE或IIS缓存此页面:

<%@ OutputCache location="None" %>

您可以通过将以下内容添加到web.config的system.web部分,将此设置全局应用于所有页面:

  <caching>
    <outputCache enableOutputCache="false" enableFragmentCache="false" omitVaryStar="true" />
  </caching>