2013-03-06 62 views
1

我想我的哈希正確填寫在我的控制器,但我的鏈接包含被錯誤地傳遞到我的控制器的特殊字符:如何到原始PARAM從URL中的控制器

localhost:51756/Account/ConfirmEmail?key=80d34666-f491-4fbd-821b-4a1e5608e710&hash=B4fcSyRuy/2j94sek8JMxr7+kDg=&newEmail=aGFuc3BvcHBlQGhvdG1haWwuY29t 

哈希在我的控制器= B4fcSyRuy/2j94sek8JMxr7 KDG =

public ActionResult ConfirmEmail(string hash, string key, string newemail) 
    { 
     //do something. 
    } 

的 '+' 已 '' 被更改。 Annyone有一個想法從我的網址獲取原始參數?

感謝,在URL 漢斯

回答

0

那麼,你可以做兩件事情:

  1. 您正確編碼+字符有ASP.NET正確解碼。由於+字符的URL編碼版本%2B(見link),鏈接將成爲「...哈希= B4fcSyRuy/2j94sek8JMxr7%2BkDg ......」

  2. 您編碼的哈希恢復到原來的格式通過使用Url.Encode

+0

謝謝你的解決方案。 – 2013-03-26 12:09:39

0

所有的查詢字符串參數值必須是URL編碼。您可以使用C#中的System.Web.HttpUtility.UrlEncode(string)方法或JavaScript中的encodeURIComponent(str)方法來實現此目的。

的網址如下所示:

http://localhost:51756/Account/ConfirmEmail?key=80d34666-f491-4fbd-821b-4a1e5608e710&hash=2j94sek8JMxr7%2BkDg%3D&newEmail=aGFuc3BvcHBlQGhvdG1haWwuY29t

相關問題