如何在另一个页面中创建会话和检查空引用?

时间:2014-07-29 01:18:31

标签: c# asp.net session

我有一个创建会话变量的任务,并且必须在另一个页面中检查我的会话变量的空引用。这是我的代码

 if (RetValue == false)
 {
    takeTestAnchor.HRef = "SubscriptionInformation.aspx?sid="+subscriptionid 
                          + "&uid=" + _myUser.UserId;
    takeTestAnchor.Attributes.Add("class", "subscribeframe");

else    
{    
     if(Convert.ToString(Request.QueryString["tid"]) != string.Empty)
     {    
          takeTestAnchor.HRef = "testinstruction.aspx?tid=" + Convert.ToString(ID) 
                               + "&AT=" + assestype;
          takeTestAnchor.Attributes.Add("class", "testframe");
     }
}

这里我必须创建一个会话变量来存储 tid AT ,然后再发送到SubscriptionInformation.aspx 如果condition返回false。并且在转到SubscriptionInformation.aspx之后必须使用此会话变量 在那之后的ccavenue和成功页面.. 在成功页面中有一个按钮 GotoTest .. 当用户点击时,此会话变量应检查空引用。 如果为null则必须导航到登录页面。

所以我的努力​​是让会话变量

if (Convert.ToString(Request.QueryString["tid"]) != string.Empty)
{
     **Session["TakeAtest"] = Convert.ToString(ID) + "," + assestype;**
     takeTestAnchor.HRef = "testinstruction.aspx?tid=" + Convert.ToString(ID) 
                           + "&AT=" + assestype;
     takeTestAnchor.Attributes.Add("class", "testframe");
}

这里我创建了会话变量,其中2个值用逗号分隔。我怀疑是这种创建会话变量的正确方法????和 我写在successpage.aspx是

 protected void Button1_Click(object sender, EventArgs e)    
 {
      if( Session["TakeAtest"]!=null)
      {
         string _test=Convert.ToString(Session["TakeAtest"]);
         string[] _takeatest= _test.Split(','); 
         string tid= _takeatest[0];  
         string AT=_takeatest[1];
         Response.Redirect("testinstruction.aspx?tid=" + tid + "&AT=" + AT);
      }

我怀疑是......我创建的会话可以在这里检查吗?或者我的会话创建错了?我可以通过调试器来检查这一点。但是这里这个过程必须在ccavenue之后工作。所以我不能检查这个..我只能在服务器中检查这个。我在会话创建中是否正确?我是否正确调用会话空引用?

1 个答案:

答案 0 :(得分:0)

在设置会话值并检索值并检查它是否为空时,所有代码都是正确的。

但是,与创建两个会话相比,分割和合并字符串所花费的时间会更多。对于性能测量,请考虑创建两个会话并通过转换为字符串来检查null。

if (!String.IsNullOrEmpty(Convert.ToString(Session["name1"])) && !String.IsNullOrEmpty(Convert.ToString(Session["name2"])))
{
   //do if true
}
else
{
   Response.Redirect("~/Default.aspx",true);
}