我有一个创建会话变量的任务,并且必须在另一个页面中检查我的会话变量的空引用。这是我的代码
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之后工作。所以我不能检查这个..我只能在服务器中检查这个。我在会话创建中是否正确?我是否正确调用会话空引用?
答案 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);
}