Tôi có ba giá trị mà tôi phải chuyển làm tham số cho ví dụ strID
, strName
và strDate
.
Tôi muốn chuyển hướng ba tham số này đến một trang khác trong Response.Redirect()
. Có ai có thể cung cấp cho tôi chuỗi truy vấn chính xác không?
Câu trả lời:
(Sau đây là văn bản của phần được liên kết của mục nhập Wikipedia.)
Một URL điển hình có chứa một chuỗi truy vấn như sau:
http://server/path/program?query_string
Khi một máy chủ nhận được yêu cầu cho một trang như vậy, nó sẽ chạy một chương trình (nếu được cấu hình để làm như vậy), truyền query_string không thay đổi cho chương trình. Dấu chấm hỏi được sử dụng làm dấu phân tách và không phải là một phần của chuỗi truy vấn.
Một liên kết trong trang web có thể có URL chứa chuỗi truy vấn, tuy nhiên, HTML xác định ba cách trình duyệt web có thể tạo chuỗi truy vấn:
Công dụng chính của chuỗi truy vấn là chứa nội dung của một biểu mẫu HTML, còn được gọi là biểu mẫu web. Đặc biệt, khi một biểu mẫu chứa các trường field1, field2, field3 được gửi, nội dung của các trường được mã hóa dưới dạng chuỗi truy vấn như sau:
field1=value1&field2=value2&field3=value3...
field1=value1&field1=value2&field1=value3...
Đối với mỗi trường của biểu mẫu, chuỗi truy vấn chứa một cặp trường = giá trị. Biểu mẫu web có thể bao gồm các trường không hiển thị cho người dùng; các trường này được bao gồm trong chuỗi truy vấn khi biểu mẫu được gửi
Công ước này là một khuyến nghị của W3C. W3C khuyến nghị rằng tất cả các máy chủ web hỗ trợ dấu chấm phẩy phân tách ngoài dấu và dấu phân tách [6] để cho phép các chuỗi truy vấn ứng dụng / x-www-form-urlencoded trong URL trong tài liệu HTML mà không cần phải ký hiệu thoát thực thể.
Về mặt kỹ thuật, nội dung biểu mẫu chỉ được mã hóa dưới dạng chuỗi truy vấn khi phương thức gửi biểu mẫu là GET. Mã hóa tương tự được sử dụng theo mặc định khi phương thức gửi là POST, nhưng kết quả không được gửi dưới dạng chuỗi truy vấn, nghĩa là không được thêm vào URL hành động của biểu mẫu. Thay vào đó, chuỗi được gửi dưới dạng phần thân của yêu cầu HTTP.
Hãy thử như thế này, nó sẽ hoạt động
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
Điều này có thể được thực hiện bằng cách sử dụng:
Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
Tôi sử dụng AbsoluteUri và bạn có thể nhận được nó như sau:
string myURI = Request.Url.AbsoluteUri;
if (!WebSecurity.IsAuthenticated) {
Response.Redirect("~/Login?returnUrl="
+ Request.Url.AbsoluteUri );
Sau đó, sau khi bạn đăng nhập:
var returnUrl = Request.QueryString["returnUrl"];
if(WebSecurity.Login(username,password,true)){
Context.RedirectLocal(returnUrl);
Nó hoạt động tốt cho tôi.