Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在会话中更好地存储客户端的筛选器_C#_Javascript_Asp.net Mvc_Filter - Fatal编程技术网

C# 如何在会话中更好地存储客户端的筛选器

C# 如何在会话中更好地存储客户端的筛选器,c#,javascript,asp.net-mvc,filter,C#,Javascript,Asp.net Mvc,Filter,几乎我们应用程序的每个页面上都有几个过滤器。我目前的目标是实现一种机制来存储过滤器,并在用户重新打开页面时预先选择它们,这样至少在一个会话期间,用户在打开页面或从一页移动到另一页时,不必反复选择过滤器 该应用程序是用ASP.NETMVC编写的,我们使用了大量javascript来处理过滤。目前,很多过滤只在客户端进行(例如,检索网格的完整数据,所有进一步的过滤只在客户端进行) 我在想这些步骤: 控制器的基类:Method1从common.js获取该方法发送的数据,并将其保存在会话中 commo

几乎我们应用程序的每个页面上都有几个过滤器。我目前的目标是实现一种机制来存储过滤器,并在用户重新打开页面时预先选择它们,这样至少在一个会话期间,用户在打开页面或从一页移动到另一页时,不必反复选择过滤器

该应用程序是用ASP.NETMVC编写的,我们使用了大量javascript来处理过滤。目前,很多过滤只在客户端进行(例如,检索网格的完整数据,所有进一步的过滤只在客户端进行)

我在想这些步骤:

  • 控制器的基类:Method1从common.js获取该方法发送的数据,并将其保存在会话中
  • common JS:to common.JS添加一个方法,该方法接受用户所做的选择,并与控件名称和页面名称一起发送到服务器Method1,以便在会话对象中存储新选择
  • 控制器的基类:Method2接受控制器名称、页面名称并检索会话对象
  • 单个页面的JS:在onload事件中,指定所有现有过滤器并从Method2获取数据
然而,我不确定这个解决方案是否通用和最优


我不想重新发明轮子。此任务是否已有任何解决方案或模式?或者有什么办法可以做得更好吗?

我想到的一种方法是使用Cookies,而不是会话,因为它只是一个部分,您可以从JavaScript本身读取Cookies。它将保存服务器资源,因为您不会在会话中保存任何内容。如果您的选择标准不是很敏感,则不应存在任何安全问题

谢谢您的建议!这听起来很合理,但我认为我们将坚持使用会话,因为我们希望稍后将选择数据存储在数据库中,以便用户在另一台机器上打开网站时可以使用他的过滤器。