Nel contesto di una pagina ASP.NET, posso utilizzare Request.QueryString per ottenere una raccolta delle coppie chiave/valore nella parte della stringa di query dell'URI.Verificare se esiste una variabile non assegnata in Request.QueryString
Per esempio, se io carico la mia pagina utilizzando http://local/Default.aspx?test=value
, allora posso chiamare il seguente codice:
//http://local/Default.aspx?test=value
protected void Page_Load(object sender, EventArgs e)
{
string value = Request.QueryString["test"]; // == "value"
}
Idealmente quello che voglio fare è controllare per vedere se prova esiste affatto, in modo Posso chiamare la pagina utilizzando http://local/Default.aspx?test
e ottenere un valore booleano che indica se il test esiste nella stringa di query. Qualcosa di simile a questo:
//http://local/Default.aspx?test
protected void Page_Load(object sender, EventArgs e)
{
bool testExists = Request.QueryString.HasKey("test"); // == True
}
Quindi idealmente quello che voglio è un valore booleano che mi dica se la variabile di test è presente nella stringa o meno.
Suppongo che potrei usare la regex per controllare la stringa, ma ero curioso se qualcuno avesse una soluzione più elegante.
ho provato la seguente:
//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")
Questo comportamento è diverso da PHP, per esempio, dove posso basta usare
$testExists = isset($_REQUEST['test']); // == True
Perché non è possibile controllare un 'nullo'? 'If (Request.QueryString [" test "]! = Null)' – JonH
@JonH: Poiché 'Request.QueryString [" test "]' restituisce 'null' se il test è presente nella stringa di query oppure no. –
eh? Non sono sicuro di cosa intendi, restituirà solo == null se non vede il test nella stringa di query altrimenti restituisce! = Null, e se questo è il caso puoi prendere il valore del test. Non vedo il problema. – JonH