【发布时间】:2016-05-19 12:03:27
【问题描述】:
我正在学习 ASP.NET MVC,但在理解和正确使用 session 方面存在一些问题。让我解释一下我做了什么以及我想要实现什么。
首先,我在 Home 控制器的 Index 方法中创建一个包含产品列表的会话。我还将一些默认产品添加到列表中,如下所示:
Session["ShoppingCart"] = new List<Products>() { new Products { ID = 1 }, new Products { ID = 2 } };
(我的目标是稍后在其他控制器中使用此会话以便能够添加产品,但现在我只想做一些测试。)
然后在 Shop 控制器中,我有一个操作方法来显示购物车的内容。这就是我开始迷失在这个美妙世界的地方。
我无法解决的问题是我应该如何对待 Session["ShoppingCart"] 以便我可以查看列表中的产品列表!?我应该有一个带有 IEnumerable 的视图,以便能够用剃刀对其列表进行迭代吗?
【问题讨论】:
-
请注意,使用会话处理重要的数据时要小心。我必须处理一个使用购物车会话的电子商务解决方案,这是客户沮丧的一个巨大来源,因为他们的购物车就这样消失了,对他们来说似乎是随机的。事实上,会话是临时的和暂时的,如果您不使用像 SQL Server 这样的持久支持,更是如此。在 proc 会话中,只要应用程序池回收,它们就会被销毁。我建议将“购物车”保存到与他们的用户帐户绑定的数据库中,这样用户就不会丢失它。
-
@ChrisPratt 感谢您的信息。
标签: c# asp.net asp.net-mvc session razor