2016-04-25 109 views
0

我创建的会话使用C#asp.net移动页面之间数据的标签,但结果并没有出现,该计划并没有给我的错误代码会不会出现在

第一页代码:

Session["New1"] = desc1.Text; 

发送数据在第二页[标签 代码:

var userType = (string)Session["New1"]; 
     if (userType != null) 
     { 
      Label1.Text = userType.ToString() ; 
     } 
     else 
     { 
      // test "2" etc 
     } 
+0

第一页和第二页上的代码在哪里? – techspider

+0

第一页里面的方法onclick – user6159724

+0

页面加载方法里面的secound代码 – user6159724

回答

0

试试这个,

if (Session["New1"]!= null) 
     { 
      Label1.Text = Session["New1"].ToString() ; 
     } 
     else 
     { 
      // test "2" etc 
     } 
+0

它给了我一个erorr对象引用未设置为对象的实例。 – user6159724

+0

现在尝试它,如果它不起作用,那么它就意味着你直接打这个代码而不用调用你的会话被你的文本框填充的那个页面。 –

+0

@ user6159724如果错误是对象引用未设置为对象的实例,则会话为空 – ninja

0

尽量明确地试图用它来避免任何空引用的问题之前,你的Session变量的存在检查:

// Explicitly check that it exists 
if (Session["New1"] != null) 
{ 
     // Then grab it (if it is a non-string type, then you can use as to cast it 
     // (e.g. a List might use Session["List"] as List<Widget>;) 
     Label1.Text = Convert.ToString(Session["New1"]); 
} 
else 
{ 
     // Do something here 
} 

这里假设你的价值将在此之前的代码获取调用进行设置。此外,对Web服务器的任何打嗝(例如超时,重启,主要异常等)都将清除会话中的所有值。