В контексте страницы ASP.NET я могу использовать Request.QueryString для получения коллекции пар ключ/значение в части строки запроса в URI.
Например, если я загружаю свою страницу с помощью http://local/Default.aspx?test=value
, я могу вызвать следующий код:
//http://local/Default.aspx?test=value
protected void Page_Load(object sender, EventArgs e)
{
string value = Request.QueryString["test"]; // == "value"
}
В идеале, я хочу проверить, существует ли вообще тест, поэтому я могу вызвать страницу с помощью http://local/Default.aspx?test
и получить логическое сообщение о том, существует ли тест в строке запроса. Что-то вроде этого:
//http://local/Default.aspx?test
protected void Page_Load(object sender, EventArgs e)
{
bool testExists = Request.QueryString.HasKey("test"); // == True
}
Так идеально, что я хочу, это логическое значение, которое говорит мне, есть ли тестовая переменная в строке или нет.
Я полагаю, я мог бы просто использовать регулярное выражение для проверки строки, но мне было любопытно, было ли у кого-то более элегантное решение.
Я пробовал следующее:
//http://local/Default.aspx?test
Request.QueryString.AllKeys.Contains("test"); // == False (Should be true)
Request.QueryString.Keys[0]; // == null (Should be "test")
Request.QueryString.GetKey(0); // == null (Should be "test")
Это поведение отличается от PHP, например, где я могу просто использовать
$testExists = isset($_REQUEST['test']); // == True