小弟做了2个网页,一个是首页,一个是用户登录的,我弄了Session来存储用户名,但是我没有登录的时候,就提示“未将对象引用设置到对象的实例”或是“在调用方法前,请检查确定对象是否为空!”。是不是Session里的值一定要有啊?首页后台代码如下:
protected void Page_Load(object sender, EventArgs e)
{ Label1.Text = Session["Username"].ToString();
}
用户登录页面后台代码:BUTTON的单击事件
Session["Username"] = username;
不知道我说的清楚不!请大家告诉我,我哪里需要改,谢谢
protected void Page_Load(object sender, EventArgs e)
{ Label1.Text = Session["Username"].ToString();
}
用户登录页面后台代码:BUTTON的单击事件
Session["Username"] = username;
不知道我说的清楚不!请大家告诉我,我哪里需要改,谢谢
Label1.Text = Session["Username"];
你也可以判断Session["Username"]如果为空就转向首页。
只要你登陆了 就不会出现这样的问题,这也是一种防止未登陆打开后台页面的方法你可以在后台加个判断
if(Session["Username"].ToString!=""&&Session["Username"].ToString !=null)
{
Session["Username"].ToString();
}
如果session为空则返回登陆页面
Session["Username"] 是个object对象 在使用对象的时候如.ToString() 必须判断是否为null
所以上述应该为:
Label1.Text = Session["Username"]==null?"":Session["Username"] as string;
try
{
Label1.Text = Session["Username"].ToString();
}
catch (Exception)
{
Label1.Text = "没有登录";
}
else Label1.Text = "游客";
{
if(Session["Username"].ToString!=""&& Session["Username"].ToString !=null)
{
Session["Username"].ToString();
}
}
{
//代码...
}
if(Session["Username"]!=null)
{
Label1.Text = Session["Username"].ToString();
}
只要你登陆了 就不会出现这样的问题,这也是一种防止未登陆打开后台页面的方法你可以在后台加个判断
if(Session["Username"].ToString!=""&&Session["Username"].ToString !=null)
{
Session["Username"].ToString();
}
这个比较实在,。。
Session.Add("UserName",username);
再在页面调用this.Label1.Text=Session["UserName"].toString();