0

目标

我的应用程序中有一个购物车,我需要检查它是否为空。

问题

看:

@if (Session["ProductsSummary"] == null)
{
    // Do something
}

如您所见,这段代码检查会话是否为空。当我第一次在我的购物车中添加一些东西时,我创建了一个会话(称为ProductsSummary)并在其中存储一些东西(关于添加的产品的一些信息)。

当我从Shopping Cart(或ProductsSummary- 如您所愿)中删除此项目时,我将其从会话中删除,但会话仍然存在。换句话说,会话不再为空,而是空的。

我需要的很简单:如何检查会话是否为空

技术细节

我正在使用 C#.NET + MVC 4 + Razor 引擎。

只为求知

我正在使用KnockoutJS

4

2 回答 2

1

如果您不想删除“ProductSummary”对象,您可以简单地执行Session.Remove("ProductSummary"). 如果您想完全使 Session 无效,以便在后续请求中创建另一个,您可以调用Session.Abandon()

我相信你对会话是什么有点误解。会话是一个键/值存储。 Session["ProductSummary"] = foo;不会创建新会话,它会将您的对象添加到现有会话中。

从技术上讲,您不应该检查它是否为空。您的应用程序中的其他代码应该能够在会话中存储数据。 Controller.TempData,例如,将数据存储在 Session 中并在后续请求中使用它。

于 2013-06-25T13:28:54.897 回答
1

像这样的东西?

@if (!string.IsNullOrEmpty(Session["ProductsSummary"] as string))
{

}
于 2013-06-25T13:20:54.383 回答