2010-06-21 55 views
1

我正面臨一個奇怪的錯誤。無法使用解析url解析包含冒號(:)的相對Url

Page.ResolveUrl("~/myPage.aspx?param=valueA:valueZ"); 

它只是不起作用,明顯的原因是':'。

http://myMachine/myVirtual/default.aspx 

如果我點擊一個鏈接之前containig的代碼,我得到:

當我的意思是不工作我就這樣一個網站意味着

http://mymachine/MyVirtual/~/myPage.aspx?param=valueA:valueZ 

任何人知道如何讓它工作?

THX

+1

難道ASP頁面真的要使用冒號分隔值?冒號通常指定端口(例如http://www.website.com:8080/)。 – mcandre 2010-06-21 15:38:13

+0

我同意你的意見。這種情況從我使用的日期時間開始計算出來,如下所示:dd/mm/yyyy hh:mm:ss。 這就是爲什麼我第一次嘗試這樣的事情,但沒有worh: Page.ResolveUrl(Page.Server.UrlEncode(「〜/ myPage.aspx?param = valueA:valueZ」)) – Pitming 2010-06-21 15:44:55

回答

3

替換你的「:」以「%3A」,不知道這是唯一的解決方法,但它是一個跳出我的第一件事。

這是因爲:字符是保留字符。欲瞭解更多有關保留字符的信息,你可以看看this site

+0

所以問題是,爲什麼在處理它之前,方法Resolve Url沒有「自動編碼」給定的參數字符串? – Pitming 2010-06-21 15:51:33

+0

真的嗎?方法去編輯你的答案和複製我的答案的一部分,而不報復... – ircmaxell 2010-06-21 15:52:36

+0

真的,我們的答案碰巧是谷歌的第一個搜索結果,當你搜索'網址編碼' – FlyingStreudel 2010-06-21 15:57:18