您的位置:首页 > 编程语言 > ASP

ASP.NET中一个简单的关于Session的问题的解决

2008-07-12 00:02 609 查看
用习惯了asp,总是把session没有定义直接拿来使用.

今天做一个小小的东西却出了问题,简化地说:

1.做一个 设置session的页面, 然后自动redirect 到显示 session的页面,这样是没有问题的;对,以前就这么做的;

2. 今天一个老哥,他先访问了显示session的页面,问题出来了,

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:

“/WebSite1”应用程序中的服务器错误。

未将对象引用设置到对象的实例。

[code]行 19:       //  }
行 20:
行 21:         this.Label1.Text = Session["name"].ToString();
行 22:     }
行 23:     protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)

[/code]
源文件: d:/My Documents/Visual Studio 2005/WebSites/WebSite1/Default2.aspx.cs 行: 21

堆栈跟踪:

[code][NullReferenceException: 未将对象引用设置到对象的实例。]
Default2.Page_Load(Object sender, EventArgs e) in d:/My Documents/Visual Studio 2005/WebSites/WebSite1/Default2.aspx.cs:21
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +31
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +68
System.Web.UI.Control.OnLoad(EventArgs e) +88
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3034

[/code]
解决办法: 在显示session的语句前面加上:

if (Object.Equals(Session["name"],null) )
{
Session["name"]="没有值";
}

OK,问题解决.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐