读书人

跪求 MM 帮忙,该如何处理

发布时间: 2012-10-13 11:38:17 作者: rapoo

跪求 MM 帮忙

C# code
//源页中用来保存用户名到会话状态并重定向到目标页的代码如下:protected void SubmitButton_Click(object sender, EventArgs e){    this.Session["UserName"] = this.UserNameTextBox.Text;    this.Response.Redirect("DestinationPage.aspx");} //目标页中获取保存在会话状态中的用户名的代码如下: protected void Page_Load(object sender, EventArgs e){    string UserName = this.Session["UserName"].ToString();    this.Response.Write(UserName);} 


我使用这种传递方式怎么总是出错啊?

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

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


[解决办法]
小菜鸟的理解:
未将对象引用设置到对象的实例 这种错误应该都是什么类没有进行实例化导致的吧?对不对?
[解决办法]
string UserName = this.Session["UserName"].ToString();

“this.Session["UserName"]”这个有默认20分钟的存活期,过20分它就失效啦,亲
[解决办法]
修改如下
C# code
string UserName = this.Session["UserName"]==null?"":this.Session["UserName"].ToString();
[解决办法]

if(this.Session["UserName"]!=null)
{
string UserName = this.Session["UserName"].ToString();

this.Response.Write(UserName);

}
else
{

this.Response.Write("session会话失效");


}
[解决办法]
你的this.Session["UserName"]不存在时,会出现这种错误,
但按你的这种写法Session["UserName"]应不会为空的

可以这样写string UserName=Convert.ToString(this.Session["UserName"]);
这样就不会有你那种错误了
[解决办法]
你在使用Session["UserName"]之前,首先需要赋值的!!!

读书人网 >C#

热点推荐