2013-03-06 47 views
-2

提前道歉,因为我确信此主题无疑已被问到,但我找不到任何回复我的特定查询的帖子。在用户会话期间在MVC中保留数据

记住我是MVC的新手,这是我必须要做的。我有一个使用MVC 3框架在VS 2010下开发的项目。我有一个由6个字段和一个嵌套模型组成的搜索页面,它本身可以包含3个字段。

我可以成功地将所有这些数据发回给自己,并且数据成功地作为模型传回,所以这些字段保留用户提供的数据。

在我继续在另一个视图上实际使用这个搜索条件之前,一个念头打动了我。我想保留这个搜索条件,甚至可能在用户会话期间将搜索结果保存在内存中。

这背后的原因是简单地救我了用户的时间:

一)否定需要不断重新输入他们的搜索条件,无论他们是如何进入或离开搜索页面

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

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

我已经做了一些谷歌搜索,并确实看过类似主题的网站。从我读过的使用会话(如果开发一个PHP站点,我通常会使用它)是一个不行的。从我读过的理由来看,为什么你不应该使用会话似乎是有效的,我很高兴与它一起。

但现在我留在了一个让我挠头的地方想知道为什么最好的做法是实现这个简单的目标,可以应用于项目后期的类似情况。

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

最后一个选项似乎暗示了使用cookie作为最可能的候选者,但无论是对还是错我都觉得这不是最好的解决方案。我原以为MVC 3设计模式会有一个更简单和推荐的持久值的方法。我确定有,但我还没有发现它。

我已经开始使用JQuery,并再次提到这一点,但我不确定这是否是正确的方向。

总而言之,我的问题真的归结为更广泛的社区认为是坚持数据在我的情况下的最佳实践。效率,可扩展性和弹性是最重要的,因为我将拥有一个庞大的全球用户群,最终将使用这个网络应用程序。

在此先感谢!

皮特

回答

0

我只是使用cookies。它们使用起来很简单,只要你愿意,你可以坚持它们,或者当用户关闭浏览器时让它们到期,而且听起来你并不像存储任何敏感的东西。