我正在尝试使用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 = "";
}
}
我尝试过其他一些事情,但我总是遇到同样的问题,第二个声明不起作用。
答案 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")