在用户会话期间在MVC中保留数据

时间:2013-03-06 22:55:47

标签: asp.net-mvc session cookies

提前道歉,因为我确信此主题无疑已经被问过,但我找不到任何能回答我特定查询的帖子。

请记住,我是MVC的新手,这是我必须去的地方。我在VS 2010下使用MVC 3框架开发了一个项目。我有一个搜索页面,其中包含6个字段和一个嵌套模型,该模型本身包含3个字段。

我可以成功地将所有这些数据发布回自身,并且数据成功传递为模型并返回agian,以便字段保留用户提供的数据。

在我继续在另一个视图上实际使用此搜索条件之前,我想到了一个想法。我希望保留此搜索条件,甚至可能在用户会话期间保留内存中的搜索结果。

这背后的原因只是为了节省用户的时间:

a)无论他们如何进入或离开搜索页面,都无需继续重新输入搜索条件

b)通过更快地展示搜索结果来加速用户体验

后者并不像第一项要求那么重要。

我已经完成了一些谷歌搜索,确实看了一下类似主题的网站。从我使用会话阅读的内容(我通常会在开发PHP网站时使用)是否定的。从我读过的原因来看,为什么你不应该使用会话似乎是有效的,我很高兴同意它。

但是现在我离开了一个我正在摸不着头脑的地方,自己想知道实现这个简单目标的最佳实践是什么,这个目标可以应用于项目后期的类似情况。

我还查看了OutputCache方法,并且表现不像我预期的那样。在测试中,我将超时设置为30秒。提交搜索后,我点击了我的搜索页面的链接,看看这些字段是否会自动填充,但他们没有。但随后单击搜索按钮,将检索缓存中的值。我以为我正在取得进展但是当我尝试提交一个新值时,缓存中的旧值又回来了,即我实际上无法通过强制执行的缓存来更改我的搜索条件。所以我把这作为探索的途径打折扣。

最后一个选项似乎建议使用cookie作为最有可能的候选人,但无论对错,我认为这不是最好的解决方案。我原以为MVC 3设计模式会有一个更容易和推荐的持久化值的方法。我确定有,但我还没有发现它。

我已经开始使用JQuery,并且已经提到了这个,但我不确定这是否正确。

总而言之,我的问题实际上归结为更广泛的社群认为在我的情况下持久保存数据的最佳做法。效率,可扩展性和弹性是至关重要的,因为我将拥有一个庞大的全球用户群,最终将使用这个Web应用程序。

提前致谢!

皮特

1 个答案:

答案 0 :(得分:0)

我只是使用cookies。它们使用起来很简单,您可以根据需要持续使用它们,或者在用户关闭浏览器时使它们过期,并且听起来并不像存储任何敏感的内容。