我的应用程序中有一个购物车,我需要检查它是否为空。
查找
@if (Session["ProductsSummary"] == null)
{
// Do something
}
如您所见,这段代码检查会话是否为空。当我向购物车添加内容时 - 第一次 - 我创建了一个会话(称为ProductsSummary
)并在其中存储了一些内容(有关添加的产品的一些信息)。
当我从Shopping Cart
(或ProductsSummary
- 根据您的意愿)删除此项目时,我会将其从会话中删除,但会话仍然有效。换句话说,会话不再为空,但是为空。
我需要的是很简单:如何检查会话是否为空?
我正在使用C#.NET + MVC 4 + Razor Engine。
我正在使用KnockoutJS。
答案 0 :(得分:1)
这样的东西?
@if (!string.IsNullOrEmpty(Session["ProductsSummary"] as string))
{
}
答案 1 :(得分:1)
如果您不想删除“ProductSummary”对象,只需执行Session.Remove("ProductSummary")
即可。如果您希望完全无效会话,以便在后续请求中创建另一个会话,则可以致电Session.Abandon()。
我相信你对会话的内容有点误解。 Session是一个键/值存储。 Session["ProductSummary"] = foo;
不会创建新会话,而是将您的对象添加到现有会话中。
从技术上讲,你不应该检查它是否为空。应用程序中的其他代码应该能够期望在会话中存储数据。例如,Controller.TempData
将数据存储在会话中,并在后续请求中使用它。