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