如何:读取会话状态中的值

更新:2007 年 11 月

此示例访问 Item 属性来检索会话状态中的值。

示例

Dim firstName as String = CType(Session.Item("FirstName"), String)
Dim lastName as String = CType(Session.Item("LastName"), String)
Dim city as String = CType(Session.Item("City"), String)
string firstName = (string)(Session["First"]);
string lastName = (string)(Session["Last"]);
string city = (string)(Session["City"]);

编译代码

此示例需要:

  • 一个 Web 窗体页或类,它可以在启用了会话状态的 ASP.NET 应用程序中使用 Current 属性访问当前请求上下文。

可靠编程

如果尝试从不存在的会话状态中获取值,则不会引发任何异常。若要确保所需的值在会话状态中,请首先使用测试(例如以下测试)检查该对象是否存在:

If Session.Item("FirstName") Is Nothing Then
    ' No such value in session state, take appropriate action.
End If
if (Session["City"] == null) 
    // No such value in session state; take appropriate action.

如果您尝试通过某些其他方法(例如,检查其类型)使用不存在的会话状态项,就会引发 NullReferenceException 异常。

会话值的类型为 Object。在 Visual Basic 中,如果设置 Option Strict On,则从会话状态中获取值时必须将类型 Object 强制转换为适当的类型,如示例中所示。在 C# 中,在读取会话值时必须总是强制转换为适当的类型。

请参见

概念

ASP.NET 视图状态概述

ASP.NET 状态管理概述

ASP.NET 状态管理建议

ASP.NET 状态管理概述