我们应用程序的几乎每个页面上都有几个过滤器。我目前的目标是实现一种机制来存储过滤器并在用户重新打开页面时预先选择它们,因此至少在一个会话期间,用户在打开页面或从页面移动时不会一遍又一遍地选择它们一页一页。
该应用程序是用 ASP.NEt MVC 编写的,我们使用大量的 javascript 来处理过滤。目前很多过滤只在客户端完成(例如,网格的完整数据被检索,所有进一步的过滤只在客户端进行)。
我在想这些步骤:
- 控制器的基类:Method1 从 common.js 中获取该方法发送的数据并将其保存在 Session 中。
- common JS:向 common.js 添加一个方法,该方法接受用户所做的选择,并与控件名称和页面名称一起将其发送到服务器 Method1 以便将新选择存储在 Session 对象中。
- 控制器的基类:Method2 接受控制器名称、页面名称并检索 Session 对象。
- 单个页面的 JS:在 onload 事件中指定所有现有的过滤器并从 Method2 获取数据。
但是,我不确定这个解决方案是否通用和最优。
而且我不想重新发明轮子。此任务是否有任何现有的解决方案或模式?或者有什么想法可以做得更好吗?