Domanda

C'è un modo per codificare url l'intero querystring URL senza cercare di UrlEncode ogni singoli parametri querystring. In questo momento sto dover ricostruire la querystring con qualcosa di simile:

foreach (string x in Page.Request.QueryString.Keys)
{
 sQueryString += x + "=" + Server.UrlEncode(Request.Params.Get(x)) + "&";
}
È stato utile?

Soluzione

Tutto quello che deve fare è quello di ottenere il seguente valore:

Page.Request.Url.Query

Vedi:

    Uri baseUri = new Uri("http://www.contoso.com/catalog/shownew.htm?date=today&<a>=<b&gt;");
    string queryString = baseUri.Query;

Il parametro queryString tornerà ?date=today&%3Ca%3E=%3Cb%3E.

Ancora una modifica - dalla MSDN :

  

La proprietà query contiene tutte le query   informazioni incluse nel URI. domanda   informazioni è separato dal percorso   le informazioni da un punto interrogativo (?) e   continua fino alla fine della URI. Il   Informazioni query ha restituito include   il punto interrogativo principale.

     

Le informazioni query è sfuggito   secondo RFC 2396 per impostazione predefinita. Se   Resource Identifiers internazionali   (IRIS) o di dominio internazionalizzati   Nome (IDN) l'analisi è attivata, la   informazioni query è sfuggito secondo   RFC 3986 e RFC 3987.

Altri suggerimenti

Altro che usare string.Format e avendo un extra e alla fine del vostro querystring l'approccio di cui sopra è ottimale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top