我想知道在多个页面之间传递大量值的最佳方式是什么。我正在考虑使用 context.Items [] 或 Session [] 将值保存到数据库中。我不确定什么是最好的方法。我可能传递了大约 40 个变量。这将在结帐过程中进行,因此它们应该在用户生命周期中持续存在。用户在第一次输入后不会更改这些值。值将类似于帐单地址、名字和姓氏等
问问题
2895 次
4 回答
4
会话可能是最有效的。但是,如果会话超时或因任何其他原因丢失,则所有条目都会丢失。因此,如果持久性更重要,您可能希望将其存储在数据库中。
于 2010-04-14T18:35:24.687 回答
1
通过 Session 变量传递值并不能很好地工作。您可能还会遇到用户点击后退按钮或单击刷新并且会话变量已被垃圾收集的机会。这是任何缓存项目的方式。解决此问题的一种方法是,当用户转到第二页时,您将所有变量放入由 Key:Value 对分隔的隐藏字段中。
如果这些值可以公开,为什么不直接将它们放到 URL 中呢?
如果你不能这样做,那么将它们放入数据库并根据用户名给它们一个 Guid ID,这对我来说将是最后的选择,因为你必须在每个请求上都读取和写入数据库。
于 2010-04-14T18:34:53.223 回答
1
答案完全取决于用户下次返回您的网站时的期望。他是否希望你记住他已经输入的联系信息?如果是这样,那么您将不得不在数据库、cookie 等中使用长期持久性。您的用户是否仅在此访问中输入其他人的信息(即客户服务应用程序),并且下次将输入不同的信息他们参观?如果是这样,那么您可能想要使用 Session 对象。
于 2010-04-14T19:28:11.557 回答