C# 使用ASP.NET存储以前的搜索条件

C# 使用ASP.NET存储以前的搜索条件,c#,asp.net,web-applications,C#,Asp.net,Web Applications,我创建了一个web应用程序,它返回产品列表。在此页面上,用户可以搜索一系列不同的搜索条件 一旦用户搜索并将结果返回到页面上的表中,用户就可以编辑产品。然而,当返回到产品列表页面时,页面只是重新加载,并再次显示所有产品 我想知道保留搜索结果的最佳方法是什么,返回搜索页面后,它会保留以前的条件 我在stack exchange上找到了一些帖子 --可能是更好的一个 有人知道我如何保持搜索条件,这样当用户返回到搜索页面时,以前的搜索条件和结果保持不变 非常感谢。如果您的整个搜索可以通过查询字符串表示,

我创建了一个web应用程序,它返回产品列表。在此页面上,用户可以搜索一系列不同的搜索条件

一旦用户搜索并将结果返回到页面上的表中,用户就可以编辑产品。然而,当返回到产品列表页面时,页面只是重新加载,并再次显示所有产品

我想知道保留搜索结果的最佳方法是什么,返回搜索页面后,它会保留以前的条件

我在stack exchange上找到了一些帖子 --可能是更好的一个

有人知道我如何保持搜索条件,这样当用户返回到搜索页面时,以前的搜索条件和结果保持不变


非常感谢。

如果您的整个搜索可以通过查询字符串表示,那么将该查询字符串(或搜索条件)存储在cookie中是非常有意义的。当然,假设cookies已打开

当用户导航到搜索页面时,您可以从cookie中读取查询字符串并返回相关结果

在高负载系统中,客户端状态是一种很好的方法。如果有数百个并发用户,则不希望在服务器上存储状态

编辑

好的,假设您决定在会话中存储结果。有什么问题吗?您的结果可能不再相关。底层数据存储中可能会发生变化,最终会显示不准确的数据

假设您最终在内存中存储了相当大的结果集—每个用户100kb。假设您有200个并发用户,那么您已经看到了100kb*200的最小值。这是低于20MB的存储空间,不包括您可能存储在会话中的其他数据。随着系统的发展,扩展成本会越来越高

另一方面,若您在客户端上存储搜索条件,那个么您可以轻松地扩展到数千个用户。您所要做的就是从cookie中检索他们的搜索条件并重新执行它

我个人会寻找一个很好的理由将数据存储在会话状态中。即存储用户敏感数据


关于-是的,它会工作,但正如我已经说过的,如果您决定将结果存储在服务器上,它的扩展性就不会太好。另外,如果应用程序池重新启动或IIS重新启动,您将丢失搜索条件。

我考虑过使用查询字符串方式。根据我之前找到的帖子,你对在会话中存储有什么想法?很好,感谢你的回答。明确而诚实的意见:)看起来查询字符串将是前进的方向;)如果不是查询字符串,则是键值对,然后可以将其转换为查询字符串。不客气。您有键值对解决方案的链接吗?