2013-07-16 44 views
0

我使用HttpUtility.UrlEncode(str)對字符串進行編碼。AspNet會自動解碼網址嗎?

我有經由GET接收字符串,像這樣的方法:

public ActionResult Confirm(string id) 
{ 
    // ... 
} 

id是接收這樣的編碼的字符串:

HTTP:// [mysite的] .COM/[CTRLER] /確認?ID = [TheStringEncoded]

內部Confirm方法,我把HttpUtility.UrlDecode(id),但第它開始產生錯誤,因爲id似乎已經被解碼。

是asp.net的url解碼這些參數的默認行爲?我現在有點害怕它的使用,如果它改變取決於某些服務器配置(我想知道),如果一些生成的字符串需要解碼,而其他的則不需要?我應該在這裏使用HttpUtility.UrlDecode嗎?

PS:編碼的字符串在base64中。如果沒有UrlEncode,我可以通過?id=內的base64字符串嗎?

回答

1

如果我正確回想我的MVC,則應該從客戶端進行編碼。控制器方法中的參數將期望乾淨的輸入。我從來不需要在控制器方法內解碼。

+0

編碼的字符串在base64中。我可以在沒有編碼的情況下在'?id ='中傳遞base64嗎? – Fabricio

+0

@Fabricio請參閱http://stackoverflow.com/questions/11828864/unable-to-decode-base-64-urls?rq=1它看起來像你應該能夠做到這一點。 – Rake36