I zawiera trzy wartości które muszą przejść jako parametry do stosowania w przypadku strID
, strName
i strDate
.
Chcę przekierować te trzy parametry na inną stronę w. Response.Redirect()
Czy ktoś może podać mi poprawne zapytanie?
Odpowiedzi:
(Poniżej znajduje się tekst powiązanej sekcji wpisu Wikipedii).
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:
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...
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.
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)));
~mypage.aspx?strID=x&strName=y&strDate=z
Można to zrobić za pomocą:
Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
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.