对此可能有一个简单的答案,我只是没有看到它B/C我太靠近项目 - 就这样吧。如何让后退按钮和会话状态一起工作?
我有一个asp.net 2.0搜索应用程序。它是一系列以搜索表单开始并以向用户显示结果结束的页面。在搜索和结果页面之间是一个筛选器页面,显示用户可以筛选搜索结果的一系列筛选器。我在搜索页面上执行初始搜索并将结果存储在会话中。如果初始搜索结果总数超过特定数量(例如,让我们假设为50),则用户进入过滤器页面。在那里他们提供了许多可用于结果的过滤器。
将所选过滤器应用于搜索结果后,如果计数仍超过50,则它们将保留在页面上,并且只有尚未选择的过滤器仍显示在页面上。如果计数小于50,它们将被带到结果页面。现在,如果他们在过滤器页面上,但希望看到结果,则会出现一个按钮,该按钮将采用结果的当前状态并将用户带到结果页面。
这里是我的问题 - 如果我在结果页面上应用一些过滤器后,点击后退按钮(无页面缓存),我怎样才能得到搜索结果的前一个状态的任何过滤器之前我选择了已经申请?更进一步,如果我在一系列说4“应用过滤器”之后到达结果页面(应用过滤器 - 仍然超过50,应用其他过滤器 - 仍然超过50,再应用另一个过滤器 - 仍然超过50,最后应用另一个过滤器 - yay!50以下去结果页面),如果我继续点击后退按钮,如何从会话中获取每个版本的不断缩小的搜索结果?
对不起,如果这有点奇怪,并不容易理解 - 这是一个不够简单的问题,只是把它包装在一些简单的句子。
我非常渴望任何想法(与手边的问题有关)或问题。
UPDATE - 仅供参考,我没有决定多页设计。有一项要求声明它遵循现有第三方搜索应用程序的流程(逆向工程非常棒?)。
感谢
也许你应该让你的搜索和过滤信息的网址,而不是在会话状态。我在搜索应用程序上工作了几年,我希望我先走了。 只要想一想书签,如果用户为结果页面添加书签,如果他明天可以从书签中获得他的结果,那对他来说会很好。如果将搜索参数存储在会话状态中,则不能这样做。 – Johnny5 2011-12-15 20:31:37
我假设这是网络表单,并且您正在将项目放入会话中。你可以发布一些代码吗?你是否可以在模态弹出窗口中进行一些改进,以避免页面间的冲突? – 2011-12-15 20:32:14