如何避免querystring null引用问题

时间:2011-05-07 16:17:26

标签: c#

我的编码是

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;
}

我的问题是在主页中使用此编码..如果它是网站中的第一页查询字符串产生问题..如果用户以登录页面启动意味着它的工作原理。现在我想避免查询问题。

2 个答案:

答案 0 :(得分:3)

您必须修改if条件才能检查null - 否则在ToString()上尝试拨打null时会出现例外情况:

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

但有一种更好的方法 - QueryString已经返回一个字符串:

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

答案 1 :(得分:0)

我知道这是旧的,但需要参考。

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

ToString实际上是完全冗余的,并且导致了您的问题。 (null).toString()导致空引用异常。

    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;
    }