我希望用户登陆后在其页面上显示他的登录名
于是我在login页面上有这句话:Session["Name"] = tbxName.Text;
在登陆页面用一个label显示用户登录名,并这样为它赋值:username.Text = Session["Name"].ToString();
但是出现这样的错误:未将对象引用设置到对象的实例。
请问是为什么?
还有就是我把登陆页做成了一个ascx。

解决方案 »

  1.   

    一般这种错误大多都是在后台代码里的空间,在前台页里没有如
     protected System.Web.UI.WebControls.TextBox username;在前台页没有<asp:TextBox id="username" runat="server"  Width="70x" Columns="20" Height="20px"></asp:TextBox>
    还有就是在没有赋值或初始化的情况下使用了该对像
      

  2.   

    应该是你的lable的id不是username,检查下,如果是的话就没有错了,
    label.text=Session["Name"].ToString(); 
    做成了ascx也是可以的
      

  3.   

    Session["Name"]没有赋值,登录时,姓名的值打印出来看看。还有TextBox 、Lable 的ID检查一下
      

  4.   

    你要保证运行时是先赋值后使用,使用时判断Session是否为空,为空提示重新登录.
      

  5.   

            <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"></asp:TextBox>&nbsp;
    AutoPostBack="True"这句你肯定没加
      

  6.   

    if(Session !=null)?
    可以加这个试试
      

  7.   

    汗。。不好意思没写全。。
    if(Session["Name"] != null)在使用赋值。
      

  8.   

    if(Session["Name"] != null)
      username.Text = Session["Name"].ToString(); 
      

  9.   


    if(Session["Name"]!=null)
    {
        username.Text = Session["Name"].ToString(); 
    }你這樣寫看看。
      

  10.   


    try
    {
    username.Text = Session["name"].ToString();
    }
    Catch
    {
    username.Text = String.Empty;
    }
      

  11.   

    Sorry ,写错了!
    try
    {
        username.Text = Session["name"].ToString();
    }
    catch
    {
        username.Text = string.Empty;
    }
      

  12.   

    检查了,ID是username。不是这个问题
      

  13.   

    谢谢大家帮忙,我现在检查出来发现Session["Name"] 是null。即使我直接Session["Name"] = "囧";赋值,还是null,这是怎么回事?