So übergeben Sie mehrere Parameter in einem Querystring


87

Ich habe drei Werte , die ich als Parameter für zB passieren müssen, strID, strNameund strDate.

Ich möchte diese drei Parameter auf eine andere Seite in Response.Redirect()umleiten. Kann mir jemand den richtigen Querystring zur Verfügung stellen?

Antworten:


108

Query_string

(Es folgt der Text des verlinkten Abschnitts des Wikipedia-Eintrags.)

Struktur

Eine typische URL mit einer Abfragezeichenfolge lautet wie folgt:

http://server/path/program?query_string

Wenn ein Server eine Anforderung für eine solche Seite empfängt, führt er ein Programm aus (sofern dies konfiguriert ist) und übergibt die Abfragezeichenfolge unverändert an das Programm. Das Fragezeichen wird als Trennzeichen verwendet und ist nicht Teil der Abfragezeichenfolge.

Ein Link auf einer Webseite kann eine URL enthalten, die eine Abfragezeichenfolge enthält. HTML definiert jedoch drei Möglichkeiten, wie ein Webbrowser die Abfragezeichenfolge generieren kann:

  • ein Webformular über das Element ...
  • eine serverseitige Imagemap über das ismap-Attribut für das Element mit einer Konstruktion
  • eine indizierte Suche über das jetzt veraltete Element

Webformulare

Die Hauptverwendung von Abfragezeichenfolgen besteht darin, den Inhalt eines HTML-Formulars zu enthalten, das auch als Webformular bezeichnet wird. Insbesondere wenn ein Formular mit den Feldern Feld1, Feld2, Feld3 gesendet wird, wird der Inhalt der Felder wie folgt als Abfragezeichenfolge codiert:

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

  • Die Abfragezeichenfolge besteht aus einer Reihe von Feld-Wert-Paaren.
  • Innerhalb jedes Paares werden Feldname und Wert durch ein Gleichheitszeichen getrennt. Das Gleichheitszeichen kann weggelassen werden, wenn der Wert eine leere Zeichenfolge ist.
  • Die Reihe von Paaren wird durch das kaufmännische Und '&' (oder Semikolon ';' für in HTML eingebettete und nicht durch ein ... generierte URLs getrennt; siehe unten). Obwohl es keinen endgültigen Standard gibt, erlauben die meisten Web-Frameworks die Zuordnung mehrerer Werte zu einem einzelnen Feld:

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

Für jedes Feld des Formulars enthält die Abfragezeichenfolge ein Paarfeld = Wert. Webformulare können Felder enthalten, die für den Benutzer nicht sichtbar sind. Diese Felder werden beim Senden des Formulars in die Abfragezeichenfolge aufgenommen

Diese Konvention ist eine W3C-Empfehlung. W3C empfiehlt, dass alle Webserver zusätzlich zu kaufmännischen Und-Trennzeichen [6] Semikolon-Trennzeichen unterstützen, um anwendungs- / x-www-form-urlencodierte Abfragezeichenfolgen in URLs in HTML-Dokumenten zuzulassen, ohne dass die Entität kaufmännisches Und entziehen muss.

Technisch gesehen wird der Formularinhalt nur dann als Abfragezeichenfolge codiert, wenn die Formularübermittlungsmethode GET ist. Dieselbe Codierung wird standardmäßig verwendet, wenn die Übermittlungsmethode POST ist, das Ergebnis jedoch nicht als Abfragezeichenfolge gesendet wird, dh nicht zur Aktions-URL des Formulars hinzugefügt wird. Die Zeichenfolge wird vielmehr als Hauptteil der HTTP-Anforderung gesendet.


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

bevor Sie umleiten:

string queryString = Request.QueryString.ToString();

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

15

Versuchen Sie es so. Es sollte funktionieren

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


5

Dies kann erreicht werden mit:

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

1
@ DalijaPrasnikar Dieser "Link" ist eine URL, die auf localhost verweist und Teil der Antwort ist. Bitte nicht "Robo-Review".
ElGavilan

1

Ich benutze das AbsoluteUri und du kannst es so bekommen:

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

Dann, nachdem Sie sich angemeldet haben:

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

Es funktioniert gut für mich.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.