2011-05-07 70 views
1

我的编码是如何避免查询字符串空引用的问题

if (Request.QueryString["uid"].ToString() != "0") 
{ 
    string dummy =Request.QueryString["uid"].ToString(); 
    Label1.Text = dummy; 
    Response.Redirect("../Profile/Home1.aspx?uid="+ dummy); 
} 
else 
{ 
    Label1.Text = "none"; 
    Session["AccountId"] = 0; 
} 

我的问题是正在使用这个编码在首页..如果是在网站上查询字符串的第一个页面产生的问题..如果用户启动与登录页面意味着它的作品。现在我想避免查询字符串问题。

回答

3

你必须解决您如果条件检查null - 否则,你会得到尝试调用ToString()null当一个例外:

if(Request.QueryString["uid"] != null && Request.QueryString["uid"].ToString() != "0") 

但是有一个更好的方式来做到这一点 - QueryString已经返回一个字符串:

if(Request.QueryString["uid"] != null && Request.QueryString["uid"] != "0") 
+0

你好,我试着完成 – Anboo 2011-05-07 16:24:51

0

我知道这是旧的,但仅供参考。

Request.QueryString [index]返回一个字符串。

ToString实际上完全是多余的,并且正在导致您的问题。 (null).toString()会导致null引用异常。

string uid = Request.QueryString["uid"]; 
    if (uid != "0") { 
     Label1.Text = uid; 
     Response.Redirect("../Profile/Home1.aspx?uid="+ uid); 
    } 
    else { 
     Label1.Text = "none"; 
     Session["AccountId"] = 0; 
    }