ASP .NET MVC在视图之间存储大量参数

时间:2012-01-31 16:15:42

标签: asp.net-mvc session

我有一个非常简单的ASP.NET MVC站点,它显示数据库中的图像。用户填写一些搜索参数,View返回数据库中符合搜索条件的图像列表。

我现在正在添加分页,根据页码我跳过从数据库中检索到的一定数量的图像。我有这个工作在第一页。当我点击结果的第二页时,我的搜索参数会丢失,因为我目前没有机制来存储视图之间的搜索参数。

最好的方法是什么。我可以有很多搜索参数。我应该将它们全部存储在会话中还是隐藏的字段中?这感觉就像一个黑客。我应该有一个单独的ViewModel来保存搜索参数并将其存储在会话中吗?

采取什么样的典型方法?

2 个答案:

答案 0 :(得分:1)

我会将它们全部放在“Next”和“Previous”链接的查询字符串中。这将允许访问者为完整的URL添加书签并返回具有相同排序和过滤设置的同一页面。

答案 1 :(得分:1)

您通常会将隐藏字段中的跨页面数据存储起来。对于可伸缩性,会话应限于会话范围的相关数据。如果将数据放入隐藏字段会打开漏洞,您可以考虑序列化视图模型并将其加密为一个隐藏字段。将它放在URL中是另一种选择,尽管您可以将其放在那里的内容数量有限。