浏览器的后退按钮在ASP.NET应用程序中会随机禁用

|| 在我的两页Web应用程序上,用户在第一页上逐步输入信息并进行选择。完成后,他们单击导航到第二页的“生成”按钮。用户打印该页面,然后单击浏览器的“后退”箭头以返回选择完整的第一页。 生成几个页面(2或3)后,单击“上一步”仅禁用该图标而无需返回。他们必须手动重新访问第一页,然后重新输入信息和选择。 我发现显示即时历史记录的“后退/前进”箭头(IE8)右侧的向下箭头通常包括所有“上一页”页面。但是,当后退按钮即将被禁用时,历史记录仅显示当前站点。 哪些事件,脚本,标头等会清除当前站点的历史记录?它发生在WinXP和Win7的IE7和IE8中。在FireFox中,该按钮没有禁用,但也没有执行任何操作。用户将其报告为最新版本,并且我一直在对该应用程序进行更改,但是它仅影响第二页上的HTML(不过不影响脚本)。如果是最近的话,可能是代码问题,但是我不确定在仔细检查最近的更改时要查找什么。     
已邀请:
        哪个版本的IE? 在内部,IE会在travellog(又称为后退/前进堆栈)中维护有限数量的数据。具有大量回发表单的ASP.NET页通常会突破此限制,从而抹掉了历史记录堆栈。 在IE6和IE7中,如果存在一个表单输入字段,其值长于523,659个字符,则当您离开页面导航时,IE可能会清除当前会话的旅行日志(类似于历史记录),并禁用后退和前进按钮。 我相信IE8中整体Travellog的大小限制有所提高,但不超过几兆字节。     
        通常,如果您希望用户在页面之间来回导航,则可以在执行此任务的页面上为他们提供链接(不使用
javascript:back()
),而不是使用浏览器的导航。 最有可能发生的是,单个页面的回发有时被认为是页面,有时却不被视为页面。如果用户操作加载的页面具有相同的URI和查询字符串,则即使所有内容可能都已更改,大多数浏览器也会认为该“相同的页面”。这通常是由于大量使用MultiViews以及将有关当前视图的信息保存在ViewState或Session中;在该页面中导航不会更改导航到的URI,因此浏览器不会将每个新负载记录为唯一。 如果确实需要适当的来回功能,则需要确保每个链接都会导致浏览器被告知导航到与当前页面不同的URI。您可以通过添加查询字符串元素来做到这一点,该元素将出现在指向不同页面或视图的每个链接中,并且随着用户的每次点击都会自动增加。每次给浏览器一个不同的URI。您只能使用现有的QueryString元素在链接的URI上创建新元素。这可能很麻烦,更简单的解决方案是提供页面内导航,并告诉您的用户不要再点击“返回”。     

要回复问题请先登录注册