如何检查 QueryString 是否没有参数

3

我可以帮助您进行翻译,这段内容与IT技术有关。当我没有任何参数时,在查询字符串中我面临一个问题。请看下面的示例。以下是我的URL:

场景1

URL ---http://localhost/Employee/Emp/empmanagement.aspx

我正在检查一个条件,但是它抛出了错误"请求不可用"

if(Request.QueryString.ToString().Contains("employeeData"))

2 Scenario

URL ---http://localhost/Employee/Emp/empmanagement.aspx?empData=employeeData

并且它在下面正常工作。

if(Request.QueryString.ToString().Contains("employeeData"))

感谢大家,所有的答案都是正确的。问题出在我的上下文中,Querystring没有返回值。所以我在aspx页面中声明它,并且现在它对我有用了。

ASPX代码

 <cw:QueryString runat="server" ID="_empValue"  Required="False" />

编码背后的代码

if(_empValue.Value != null && _empValue.Value.Contains("employeeData")

1
你有没有像这样检查过它的 Count 属性:Request.QueryString.Count > 0 - Soner Gönül
嗨,Soner, 实际上,在上面的第一个场景中没有参数,所以甚至请求也没有到达。它会抛出错误,指出上下文中没有可用的请求。 - user2147163
你要把这些代码写在哪里?是哪个文件? - Soner Gönül
@SonerGönül,你认为第一行中的.ToString()是罪魁祸首吗? - शेखर
@शेखर 可能是这样。由于 QueryString 返回 NameValueCollection,调用 ToString 会调用 object.ToString,这可能会导致不同的行为。老实说,我不知道。我现在没有编译器。 - Soner Gönül
大家好,这很奇怪,有时相同的代码可以正常工作,但有时甚至请求都不存在。 - user2147163
5个回答

3
这应该足够了。
if(Request != null && Request.QueryString["employeeData"] != null)
{
}

或者

if (Request != null && Request.QueryString.Keys.Count > 0)
{
}

或者

if (Request != null && string.IsNullOrEmpty(Request.QueryString["employeeData"]))
{

}

0

谢谢大家,每个人的答案都是正确的,问题是因为我的上下文查询字符串有时没有返回。

所以,我在我的aspx页面中声明了它,现在对我来说运行得很好。

ASPX标记:

<cw:QueryString runat="server" ID="_empValue"  Required="False" />

代码后台:

if(_empValue.Value != null && _empValue.Value.Contains("employeeData")

0

Request.QueryString 就是一个 NameValueCollection,也就是集合之一。因此,和其他集合一样,它也有 Count 属性。因此您可以检查

Request.QueryString.Keys.Count > 0

0

你可以尝试

if (Request.QueryString.Keys.Count > 0)
{

}

或者你可以尝试

if(Request.QueryString.AllKeys.Any(i => i == "query"))

0

试试这个:

if(Request!=null && Request.QueryString.Keys.Count > 0)
{
     if(Request.QueryString.ToString().Contains("employeeData"))
     {
     }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接