设置if else语句以检查查询字符串

时间:2014-04-02 14:33:02

标签: c# asp.net

我正在尝试使用if else语句设置一个检查两个不同查询字符串的页面。只要我只使用其中一个if语句就可以工作,如果我把它们都放在一起,我放在顶部的那个工作,而另一个给我一个错误。这是我用过的代码:

if (Request.QueryString.HasKeys())
{
    if (!Page.IsPostBack)
    {
        if (Request.QueryString["foo"].Equals("Success"))
            lblUpdate.Text = "Message 1";
        else if (Request.QueryString["bar"].Equals("Success"))
            lblUpdate.Text = "Message 2";
        else
            lblUpdate.Text = "";
    }
}

我尝试过其他一些事情,但我总是遇到同样的问题,第二个声明不起作用。

1 个答案:

答案 0 :(得分:6)

您应首先检查null,然后比较值:

if (Request.QueryString["foo"] != null 
     && Request.QueryString["foo"].Equals("Success"))
    lblUpdate.Text = "Message 1";
else if (Request.QueryString["bar"] != null 
    && Request.QueryString["bar"].Equals("Success"))
    lblUpdate.Text = "Message 2";
else
    lblUpdate.Text = "";

由于看起来只有一个查询字符串存在,因此最终会出现Null引用异常。

您还可以检查包含如下内容:

Request.QueryString.AllKeys.Contains("foo")