当前位置: 代码迷 >> ASP.NET >> 这样的session如何样写好
  详细解决方案

这样的session如何样写好

热度:1331   发布时间:2013-02-25 00:00:00.0
这样的session怎么样写好
我在login.aspx
中让用户输入用户名和密码,在login.aspx.cs中判断,
如果成功的话,取名字的值存在session中,
Session.Add("cname", myDT.Rows[0]["name"]);
login.aspx应用了母版页。
现在要在母版页上显示session["cname"]的内容,在main.master.cs中
 protected void Page_Load(object sender, EventArgs e)
  {
  if (HttpContext.Current.Session["cname"].ToString() != "" || HttpContext.Current.Session["cname"].ToString() != null)

  { Label1.Text = HttpContext.Current.Session["cname"].ToString(); }
  }

这样运行出现下列错误


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

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



要实现上述session功能,得怎么弄好??/




------解决方案--------------------------------------------------------
首先你这个逻辑不对,要修改为&&
if(Session["cname"]!=null)
{
Label1.Text = Session["cname"].ToString();
}
------解决方案--------------------------------------------------------
没有登陆的时候.session["cname"]是null的

 if (HttpContext.Current.Session["cname"] != null && !string.IsNullOrEmpty(HttpContext.Current.Session["cname"].ToString())) 

{ Label1.Text = HttpContext.Current.Session["cname"].ToString(); } 
  相关解决方案