nicht zugewiesene Variable vorhanden ist Im Kontext einer ASP.NET-Seite kann ich Request.QueryString verwenden, um eine Auflistung der Schlüssel/Wert-Paare im Abfragezeichenfolgenabschnitt des URI abzurufen.Überprüfen, ob in Request.QueryString
Zum Beispiel, wenn ich meine Seite laden http://local/Default.aspx?test=value
verwenden, dann kann ich den folgenden Code aufrufen:
//http://local/Default.aspx?test=value
protected void Page_Load(object sender, EventArgs e)
{
string value = Request.QueryString["test"]; // == "value"
}
Im Idealfall, was ich tun möchte, ist zu überprüfen, um zu sehen, ob Test überhaupt existiert, so Ich kann die Seite unter Verwendung http://local/Default.aspx?test
aufrufen und einen Boolean erhalten, der mir mitteilt, ob Test in der Abfragezeichenkette vorhanden ist. Etwas wie folgt aus:
//http://local/Default.aspx?test
protected void Page_Load(object sender, EventArgs e)
{
bool testExists = Request.QueryString.HasKey("test"); // == True
}
So ideal, was ich will, ist ein boolescher Wert, der mir sagen, ob die Testvariable in der Zeichenfolge vorhanden ist oder nicht.
Ich nehme an, ich könnte einfach Regex verwenden, um die Zeichenfolge zu überprüfen, aber ich war neugierig, ob jemand eine elegantere Lösung hatte.
Ich habe versucht, die folgenden:
//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")
Dieses Verhalten unterscheidet sich als PHP, zum Beispiel, wo ich gerade
$testExists = isset($_REQUEST['test']); // == True
Warum können Sie nicht einfach nach einem 'null' suchen? 'If (Request.QueryString [" test "]! = Null)' – JonH
@JonH: Weil 'Request.QueryString [" test "]' 'null' zurückgibt, ob der Test in der Abfragekette vorhanden ist oder nicht. –
nicht wahr? Ich bin mir nicht sicher, was Sie meinen, es wird nur == null zurückgeben, wenn es den Test in der Abfragezeichenfolge nicht sieht, andernfalls gibt es! = Null zurück, und wenn das der Fall ist, können Sie den Wert von test ergreifen. Ich sehe das Problem nicht. – JonH