2012-06-14 52 views
1

我在我的asp.net表单control.my中使用视图概念。第一个视图包含一个捕获用户详细信息的窗体。当用户按下继续时,它将移动到第二个视图。 问题是,当用户从第二个视图按下浏览器的后退按钮时,它不会移动前一个视图,而是移动到浏览器历史记录中的上一个页面。浏览器后退按钮不会移到前一个视图

当用户按下浏览器的后退按钮时,我想移动到第一个视图,并在表单中存在数据。

+0

浏览器仅存储历史记录中访问的url。他们不知道* view *的含义。视图是ASP.NET MVC特定的概念。视图始终通过控制器操作提供,因此您应该在处理浏览器历史记录时考虑控制器操作,而不是视图。 –

回答

1

我想你应该执行一个完整的page postback,这样在客户端你以前的视图将被保存在浏览器的历史记录中。

+0

这个完整的回发工作,它回到前一个视图。但它不包含视图状态。表单值在回来时被删除。是否有解决方案或视图必须持有视图并将它们加载回页面加载时的形式? – Mafas

+0

当用户点击后退按钮时,你的页面被从缓存中取出,所以你的'viewstate'不会在那里被找到,我猜。一种解决方案可能是为用户提供一个返回按钮,用户可以通过“回发”返回并且不必按下浏览器的后退按钮,但用户仍然可以按下浏览器的按钮,我们将从我们所在的位置开始。 – yogi