2009-09-23 57 views
1

我有一个搜索栏,上面有4个级联下拉菜单,用户做出选择然后点击搜索。当用户返回到搜索页面时,我希望仍然显示先前选择的值。在MVC中维护会话状态的最佳方法

有关保存这些选定值的最佳方法的任何意见?

回答

4

有什么理由不把它们放在Querystring中?

如果您正在考虑会话,请首先尝试使用TempData,它将负责为您处理会话。

正如其他地方提到的,饼干是可以的,但不是RESTful。使用Querystring,可以为搜索添加书签。一些知名人士使用这种方法(google和SO来命名两个)

+0

查询字符串为胜 - 始终使用查询字符串用于搜索。它更友好。 – sirrocco 2009-09-23 17:21:42

1

如果您临时保存可以使用,请使用Cookie。

1

会话在ASP.NET MVC中仍然可用。此外,它现在可以嘲笑。双赢。

0

这是会话词典是什么:页面加载间店导航值...

0

我们使用企业库缓存应用程序块:

http://msdn.microsoft.com/en-us/library/dd203099.aspx

+0

您使用缓存块来存储用户数据?我会理解使用缓存块缓存说搜索结果,所以重复的搜索拉回缓存的副本,你真的使用它的用户数据吗?如果是的话,你如何将数据映射到全局到用户? – 2009-09-23 12:46:34

+0

@Chris:Entlib基于一个关键值对。如果您使用userid作为密钥,那么存储用户数据就没有问题。 – 2009-09-23 13:25:59