Compruebe si existe una variable no asignada en Request.QueryString

Dentro del contexto de una página ASP.NET, puedo usar Request.QueryString para obtener una colección de los pares clave / valor en la parte de la cadena de consulta del URI.

Por ejemplo, si carga mi página usandohttp://local/Default.aspx?test=value, entonces puedo llamar al siguiente código:

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

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

Idealmente, lo que quiero hacer es verificar siprueba existe en absoluto, así que puedo llamar a la página usandohttp://local/Default.aspx?test y obtén un booleano que me diga si existe una prueba en la cadena de consulta Algo como esto:

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

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

Así que, idealmente, lo que quiero es un valor booleano que me diga si la variable de prueba está presente en la cadena o no.

Supongo que podría usar expresiones regulares para verificar la cadena, pero tenía curiosidad de que alguien tuviera una solución más elegante.

He intentado lo siguiente:

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

Este comportamiento es diferente a PHP, por ejemplo, donde solo puedo usar

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

Respuestas a la pregunta(5)

Su respuesta a la pregunta