2011-03-30 64 views
1

ASP.NET 4.0,webform站點使用javascript窗口打開url編碼

我的網站有一個鏈接是調用另一個頁面並傳遞url參數,如下所示。

http://www.foo.com/foo.aspx?anotherURI?param1=aaa&26param2=bbb

不過,我需要爲做URL編碼,所以它變成 「anotherURI參數1 = AAA & 26param2 = BBB?」:

http://www.foo.com/foo.aspx?anotherURI?param1%3Daaa%26param2%3Dbbb

現在,如果我要附上這與JavaScript,它不會工作。我如何再次對網址進行編碼?

javascript:void(window.open('http://www.foo.com/foo.aspx?anotherURI?param1%3Daaa%26param2%3Dbbb', 'popup')) 

回答

4

更正URI:

WRONG:http://www.foo.com/foo.aspx?anotherURI?param1%3Daaa%26param2%3Dbbb

RIGHT:http://www.foo.com/foo.aspx?anotherURI=param1%3Daaa%26param2%3Dbbb

舉例多個URI:http://www.foo.com/foo.aspc?uri1= [encodedURI] & uri2 = [encodedURI2]

要從asp.net上的queryString變量獲取值:

Dim sUrl1 as String = request("VarName") 
Dim sUrl2 as String = request("VarName") 
Dim sUrl3 as String = request("VarName") 

如果你想從該變量解碼網址:

Dim sDecodedUrl1 as String = Server.UrlDecode(sUrl1) 
Dim sDecodedUrl2 as String = Server.UrlDecode(sUrl2) 
Dim sDecodedUrl3 as String = Server.UrlDecode(sUrl3) 
+1

然而, param1&param2用於另一個URI。這是如何運作的? – Stan 2011-03-30 20:53:35

+1

@fan.aspx'頁面中的Stan讀取'Request.QueryString [「anotherURI」]的值 - 它將包含像'param1 = aaa&26param2 = bbb'這樣的原始值,因此您需要使用Split自己解析它。如果您需要進一步的幫助,弗拉維奧將無法使用,請告訴我,我會拉快示例。 – 2011-03-30 21:13:22

+0

對不起,如果我沒有完成解釋到這個級別,讓我們舉例說明: 從asp.net上的queryString變量獲取編碼值: – 2011-03-31 07:14:03

1

,如果你想編碼/解碼它(PHP的方式它)使用

function url_encode(str) { 
    str = (str + '').toString(); 
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28'). replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+'); 
} 

function url_decode(str) { 
    return decodeURIComponent((str + '').replace(/\+/g, '%20')); 
}