Как проверить, есть ли в URI запроса какие-либо параметры - PullRequest
5 голосов
/ 27 июля 2011

У меня есть класс на C # в .NET, вызываемый после запроса по URI.Мне нужно проверить, содержит ли этот URI некоторые параметры.

Например:

http://www.website.com/page.aspx?ID=9           // must return YES
http://www.website.com/page.aspx?ID=9&Page=2    // must return YES
http://www.website.com/page.aspx                // must return NO

возможно ли это?Конечно, я не мог знать имя для каждого параметра в URI, поэтому для случайной строки запроса, например:

http://www.website.com/page.aspx?RandomParameter=1

, мне нужно вернуть YES.Могу ли я это сделать?

Ответы [ 3 ]

7 голосов
/ 27 июля 2011

Вы должны допустить, чтобы Request.QueryString также было null (без параметров).

чтобы вернуть string:

return Request.QueryString != null && Request.QueryString.Count > 0 ? "YES" : "NO";

чтобы вернуть bool:

return Request.QueryString != null && Request.QueryString.Count > 0;
5 голосов
/ 27 июля 2011

Прошло много времени с тех пор, как я работал с ними, но я считаю, что что-то вроде следующего должно соответствовать вашим потребностям:

Решение:

if(Request.QueryString != null && Request.QueryString.Count > 0)
{
     return "YES";
}
else
{
     return "NO";
}

Встроенное решение (если это было все, что вам нужно было сделать):

return (Request.QueryString != null && Request.QueryString.Count > 0) ? "YES":"NO";

Более подробную информацию о Request.QueryString можно найти здесь

3 голосов
/ 27 июля 2011

Попробуйте этот метод. Если для запрошенной страницы определены какие-либо параметры запроса, она вернет true, иначе вернет false

if (Request.QueryString.HasKeys())
{
    Response.Write("The requested page URI has parameters");
}
...