Jak przekazać wiele parametrów w kwerendzie


89

I zawiera trzy wartości które muszą przejść jako parametry do stosowania w przypadku strID, strNamei strDate.

Chcę przekierować te trzy parametry na inną stronę w. Response.Redirect()Czy ktoś może podać mi poprawne zapytanie?

Odpowiedzi:


111

Query_string

(Poniżej znajduje się tekst powiązanej sekcji wpisu Wikipedii).

Struktura

Typowy adres URL zawierający ciąg zapytania jest następujący:

http://server/path/program?query_string

Gdy serwer otrzyma żądanie takiej strony, uruchamia program (jeśli jest do tego skonfigurowany), przekazując mu niezmieniony ciąg query_string. Znak zapytania jest używany jako separator i nie jest częścią ciągu zapytania.

Łącze na stronie internetowej może mieć adres URL zawierający ciąg zapytania, jednak HTML definiuje trzy sposoby, w jakie przeglądarka internetowa może wygenerować ciąg zapytania:

  • formularz internetowy za pośrednictwem elementu…
  • mapa obrazu po stronie serwera za pośrednictwem atrybutu ismap na elemencie z konstrukcją
  • indeksowane wyszukiwanie za pomocą nieaktualnego elementu

Formularze internetowe

Głównym zastosowaniem ciągów zapytań jest przechowywanie zawartości formularza HTML, znanego również jako formularz internetowy. W szczególności w przypadku przesłania formularza zawierającego pola pole1, pole2, pole3 zawartość pól jest kodowana jako ciąg zapytania w następujący sposób:

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

  • Ciąg zapytania składa się z serii par pole-wartość.
  • W każdej parze nazwa i wartość pola są oddzielone znakiem równości. Znak równości można pominąć, jeśli wartość jest pustym ciągiem.
  • Szereg par jest oddzielony ampersandem, „&” (lub średnikiem „;” w przypadku adresów URL osadzonych w HTML, a nie generowanych przez…; patrz poniżej). Chociaż nie ma ostatecznego standardu, większość platform internetowych umożliwia skojarzenie wielu wartości z jednym polem:

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

Dla każdego pola formularza ciąg zapytania zawiera parę pole = wartość. Formularze internetowe mogą zawierać pola, które nie są widoczne dla użytkownika; pola te są uwzględniane w ciągu zapytania podczas przesyłania formularza

Ta konwencja jest zaleceniem W3C. W3C zaleca, aby wszystkie serwery WWW obsługiwały separatory średników oprócz znaków ampersand [6], aby umożliwić ciągi zapytań application / x-www-form-urlencoded w adresach URL w dokumentach HTML bez konieczności ucieczki przed znakami ampersandów.

Z technicznego punktu widzenia zawartość formularza jest kodowana jako ciąg zapytania tylko wtedy, gdy metodą przesyłania formularza jest GET. To samo kodowanie jest używane domyślnie, gdy metoda przesyłania to POST, ale wynik nie jest wysyłany jako ciąg zapytania, czyli nie jest dodawany do adresu URL akcji formularza. Zamiast tego ciąg jest wysyłany jako treść żądania HTTP.


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

przed przekierowaniem:

string queryString = Request.QueryString.ToString();

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

15

Spróbuj w ten sposób, powinno działać

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


5

Można to zrobić za pomocą:

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

1
@DalijaPrasnikar to "link" to adres URL wskazujący na localhost i jest częścią odpowiedzi. Nie używaj „robo-review”.
ElGavilan

1

Używam AbsoluteUri i możesz to uzyskać w ten sposób:

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

Następnie po zalogowaniu:

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

To działa dobrze dla mnie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.