首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请教一个项目中遇到的关于Session的有关问题

2012-02-02 
请问一个项目中遇到的关于Session的问题, 主页面中的点击事件:protectedvoidlbAddCadre_Click(objectsende

请问一个项目中遇到的关于Session的问题,

主页面中的点击事件:
protected   void   lbAddCadre_Click(object   sender,   EventArgs   e)
{

        AddFlipWindowPlaceHolder.ControlPath   =   "AddEmployee.ascx ";
        _currentSelect   =   "divAddCadre ";
        Session.Add( "addEmployee ",   "addEmployee ");

}

用户控件中的点击提交事件:
protected   void   btnAdd_Command(object   sender,   CommandEventArgs   e)
{
        if   (Session[ "addEmployee "].ToString()   ==   "addEmployee ")
        {
                ......
                ......
                CustomPlaceHolder   cph   =   (CustomPlaceHolder)this.Parent;
                cph.ControlPath   =   null;
                if(Session   !=   null)
                        Session.Remove( "addEmployee ");
}


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

行   130:                         CustomPlaceHolder   cph   =   (CustomPlaceHolder)this.Parent;
行   131:                         cph.ControlPath   =   null;
行   132:                         if(Session   !=   null)         //此处为红色提示错误
行   133:                         Session.Remove( "addEmployee ");

堆栈跟踪:  


[NullReferenceException:   未将对象引用设置到对象的实例。]
      System.Web.UI.UserControl.get_Session()   +29
      AddEmployee.btnAdd_Command(Object   sender,   CommandEventArgs   e)   in   f:\MIC2.2\AddEmployee.ascx.cs:132
      System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs   e)   +96
      System.Web.UI.WebControls.Button.RaisePostBackEvent(String   eventArgument)   +177
      System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String   eventArgument)   +31
      System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler   sourceControl,   String   eventArgument)   +32
      System.Web.UI.Page.RaisePostBackEvent(NameValueCollection   postData)   +72
      System.Web.UI.Page.ProcessRequestMain(Boolean   includeStagesBeforeAsyncPoint,   Boolean   includeStagesAfterAsyncPoint)   +3838

 




[解决办法]
Session[ "... "]为正确的格式;
单写Session没有引用对象;
[解决办法]
Session.Add( "addEmployee ", "addEmployee ");

没有这样写过

Session[ "addEmployee "]= "addEmployee ";

My-Blog地址1:http://www.cnblogs.com/nyzfl
My-Blog地址2: http://blog.csdn.net/nyzfl


[解决办法]
Session.Add( "addEmployee ", "addEmployee ");

Session[ "addEmployee "]= "addEmployee ";
---------------------
这2个不存在效率高低的问题,是一样的,只是表现形式不一样
[解决办法]
用Session[ "addEmployee "].ToString() 先判断一下是不是为null
不然一旦Session丢失会出这个错误的..

热点排行