Sprawdź, czy zmienna nieprzypisana istnieje w Request.QueryString

W kontekście strony ASP.NET mogę użyć Request.QueryString, aby uzyskać zbiór par klucz / wartość w części łańcucha URI zapytania.

Na przykład, jeśli załaduję moją stronę za pomocąhttp://local/Default.aspx?test=value, a następnie mogę zadzwonić pod następujący kod:

//http://local/Default.aspx?test=value

protected void Page_Load(object sender, EventArgs e)
{
    string value = Request.QueryString["test"]; // == "value"
}

Idealnie, co chcę zrobić, to sprawdzić, czytest w ogóle istnieje, więc mogę zadzwonić na stronę za pomocąhttp://local/Default.aspx?test i pobierz wartość logiczną mówiącą mi, czy test istnieje w ciągu zapytania. Coś takiego:

//http://local/Default.aspx?test

protected void Page_Load(object sender, EventArgs e)
{
    bool testExists = Request.QueryString.HasKey("test"); // == True
}

Idealnie więc, czego chcę, to wartość logiczna, która mówi mi, czy zmienna testowa jest obecna w łańcuchu, czy nie.

Przypuszczam, że mógłbym użyć wyrażenia regularnego do sprawdzenia ciągu, ale byłem ciekawy, czy ktoś miał bardziej eleganckie rozwiązanie.

Próbowałem:

//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")

To zachowanie jest inne niż na przykład w PHP, gdzie mogę po prostu użyć

$testExists = isset($_REQUEST['test']); // == True

questionAnswers(5)

yourAnswerToTheQuestion