Come passare più parametri in un querystring


89

Ho tre valori che devo passare come parametri per esempio, strID, strNamee strDate.

Voglio reindirizzare questi tre parametri a un'altra pagina in. Response.Redirect()Qualcuno può fornirmi la stringa di query corretta?

Risposte:


111

Stringa della domanda

(Di seguito è riportato il testo della sezione collegata alla voce di Wikipedia.)

Struttura

Un tipico URL contenente una stringa di query è il seguente:

http://server/path/program?query_string

Quando un server riceve una richiesta per tale pagina, esegue un programma (se configurato per farlo), passando la query_string invariata al programma. Il punto interrogativo viene utilizzato come separatore e non fa parte della stringa della query.

Un collegamento in una pagina Web può avere un URL che contiene una stringa di query, tuttavia, l'HTML definisce tre modi in cui un browser Web può generare la stringa di query:

  • un modulo web tramite l'elemento ...
  • una mappa immagine lato server tramite l'attributo ismap sull'elemento con una costruzione
  • una ricerca indicizzata tramite l'elemento ora deprecato

Moduli web

L'utilizzo principale delle stringhe di query consiste nel contenere il contenuto di un modulo HTML, noto anche come modulo web. In particolare, quando viene inviato un modulo contenente i campi campo1, campo2, campo3, il contenuto dei campi viene codificato come stringa di query come segue:

field1=value1&field2=value2&field3=value3...

  • La stringa di query è composta da una serie di coppie campo-valore.
  • All'interno di ogni coppia, il nome e il valore del campo sono separati da un segno di uguale. Il segno di uguale può essere omesso se il valore è una stringa vuota.
  • La serie di coppie è separata dalla e commerciale, "&" (o punto e virgola, ";" per gli URL incorporati in HTML e non generati da un ...; vedi sotto). Sebbene non esista uno standard definitivo, la maggior parte dei framework Web consente l'associazione di più valori a un singolo campo:

field1=value1&field1=value2&field1=value3...

Per ogni campo del modulo, la stringa di query contiene una coppia campo = valore. I moduli Web possono includere campi che non sono visibili all'utente; questi campi sono inclusi nella stringa di query quando il modulo viene inviato

Questa convenzione è una raccomandazione del W3C. W3C raccomanda che tutti i server web supportino separatori punto e virgola oltre ai separatori e commerciale [6] per consentire stringhe di query application / x-www-form-urlencoded negli URL all'interno di documenti HTML senza dover eseguire l'escape di entità e commerciali.

Tecnicamente, il contenuto del modulo è codificato come stringa di query solo quando il metodo di invio del modulo è GET. La stessa codifica viene utilizzata per impostazione predefinita quando il metodo di invio è POST, ma il risultato non viene inviato come stringa di query, ovvero non viene aggiunto all'URL dell'azione del modulo. Piuttosto, la stringa viene inviata come corpo della richiesta HTTP.


34
Query String: ?strID=XXXX&strName=yyyy&strDate=zzzzz

prima di reindirizzare:

string queryString = Request.QueryString.ToString();

Response.Redirect("page.aspx?"+queryString);

15

Prova così, dovrebbe funzionare

Response.Redirect(String.Format("yourpage.aspx?strId={0}&strName={1}&strDate{2}", Server.UrlEncode(strId), Server.UrlEncode(strName),Server.UrlEncode(strDate)));


5

Questo può essere fatto usando:

Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");

1
@DalijaPrasnikar questo "link" è un URL che punta a localhost ed è parte della risposta. Per favore, non "robo-review".
ElGavilan

1

Io uso AbsoluteUri e puoi ottenerlo in questo modo:

string myURI = Request.Url.AbsoluteUri;
 if (!WebSecurity.IsAuthenticated) {
        Response.Redirect("~/Login?returnUrl="
            + Request.Url.AbsoluteUri );

Quindi dopo aver effettuato l'accesso:

var returnUrl = Request.QueryString["returnUrl"];
 if(WebSecurity.Login(username,password,true)){
                Context.RedirectLocal(returnUrl);

Funziona bene per me.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.