2011-06-28 31 views
6

Chuỗi URL được tạo sau phản hồi này.redirect đang khiến chúng tôi đau đầu. Nó thay thế các ký tự bằng các ký tự mã hóa phần trăm url và thêm vào các thư mục tệp bổ sung.dừng phản hồi.Chuyển hướng từ mã hóa

Response.Redirect("TestingReport.aspx?id=" + Request.QueryString("id") + "&Test_Type_ID=" + Request.QueryString("Test_Type_ID") + "&TType=" + Request.QueryString("TType")) 

https://subdomain.domain.com/User%20Portal/Testing/%2fUser%2520Portal%2fTesting%2fTestingReport.aspx%3fid%3d8444%26Test_Type_ID%3d2%26TType%3dCore%20Mandatory%202

Tại sao nó thay đổi? và = đến mã phần trăm? Tôi không hiểu tại sao nó lại phụ thêm User Portal/Testing hai lần.

Cảm ơn

Trả lời

2

Nó được gọi là URLEncoding. Thanh toán this online utility để giải mã chuỗi bạn có. Trong .NET, bạn có thể sử dụng System.Web.HttpUtility để mã hóa/giải mã.

0

Đảm bảo rằng không có không gian trống trong URL của bạn.

0

Toàn bộ URL được mã hóa URL, có thể là do bạn không mã hóa URL các giá trị bạn đặt trong chuỗi. URL mã hóa các giá trị đúng cách, và nó sẽ làm việc:

Response.Redirect(
    "TestingReport.aspx?id=" + Server.UrlEncode(Request.QueryString("id")) + 
    "&Test_Type_ID=" + Server.UrlEncode(Request.QueryString("Test_Type_ID")) + 
    "&TType=" + Server.UrlEncode(Request.QueryString("TType")) 
) 
0

Có thể muốn xây dựng chuỗi truy vấn của bạn tách biệt khỏi dòng phương pháp Redirect, URL mã hóa những giá trị và sau đó HTML mã hóa các URL được chuyển đến Response.Redirect

Mẫu được hiển thị từ trang web MSDN. Tôi nghi ngờ rằng các hoạt động ghép nối của bạn bằng cách nào đó khiến cho khuôn khổ của URL mã hóa toàn bộ điều, thay vì chỉ là các giá trị.

<% 

qs mờ

qs = Server.URLEncode(Request.Querystring) 

Response.Redirect "newpage.asp?" + Server.HTMLEncode(qs) 
%> 

http://msdn.microsoft.com/en-us/library/ms524309.aspx

+0

Không, toàn bộ chuỗi truy vấn không nên được mã hóa URL, chỉ có giá trị, hoặc bạn sẽ mã hóa bộ tách '&'. Ngoài ra, chuỗi truy vấn không được mã hóa HTML. Nó được sử dụng khi bạn đặt URL trong một thuộc tính trong mã HTML và sau đó toàn bộ giá trị thuộc tính phải được mã hóa HTML, không chỉ chuỗi truy vấn. – Guffa

0

Check-out this post. Về cơ bản. Net đang cố gắng khử trùng URL cho bạn và làm rối tung lên. Giải pháp là tự mã hóa nó.

Các vấn đề liên quan