2011-07-27 5 views
5

Ho la mia classe su C# su .NET, chiamata dopo una richiesta da un URI. Devo controllare se questo URI contiene alcuni parametri oppure no.Come verificare se l'URI della richiesta ha qualche parametro

Ad esempio:

http://www.website.com/page.aspx?ID=9   // must return YES 
http://www.website.com/page.aspx?ID=9&Page=2 // must return YES 
http://www.website.com/page.aspx    // must return NO 

è possibile? Naturalmente non ho potuto conoscere il nome per ogni parametri nel URI, quindi per un querystring casuale come:

http://www.website.com/page.aspx?RandomParameter=1 

ho bisogno di tornare SI. Posso farlo?

risposta

7

È necessario considerare Request.QueryString come null (nessun parametro).

per restituire un string:

return Request.QueryString != null && Request.QueryString.Count > 0 ? "YES" : "NO"; 

per restituire un bool:

return Request.QueryString != null && Request.QueryString.Count > 0; 
5

E 'stato un bel po' che ho lavorato con questi, ma credo che qualcosa di simile alla seguente dovrebbe soddisfare le vostre esigenze:

Soluzione:

if(Request.QueryString != null && Request.QueryString.Count > 0) 
{ 
    return "YES"; 
} 
else 
{ 
    return "NO"; 
} 

Inline Solution (Se questo era tutto il necessario per fare):

return (Request.QueryString != null && Request.QueryString.Count > 0) ? "YES":"NO"; 

potete trovare ulteriori inf ormation su Request.QueryString here.

+0

Ma Request.QueryString == null Querystring non contiene parametri? – markzzz

+0

Risolto Ci dispiace :) Questo controllerà solo se esistono dei parametri e genererà "SÌ", altrimenti "NO". Spero che questo aiuti :) –

+0

@Rionmonster 'Request.QueryString == null' genererebbe un'eccezione negli esempi di codice. Vedi la mia risposta sopra. –

2

provare questo metodo, se la pagina richiesta non ha alcun parametro querystirng definito allora restituirà true, altrimenti si return false

if (Request.QueryString.HasKeys()) 
{ 
    Response.Write("The requested page URI has parameters"); 
}