2014-01-08 151 views
1

我有以下路徑:角路由

... 
when('/sections/:bookID', { 
     templateUrl: 'partials/book.html', 
     controller: 'bookCtrl'  
    }) 
... 

凡BOOKID被定義爲參數,但它也被加密和編碼,這樣所產生的URL看起來像:

/sections/9XhNLs0tI%2fmr67rkJtfhaw%3d%3d 

問題這個路由不工作嗎?

PS:未加密的值工作得很好。所以,我知道路由正在工作。

的編碼是用C#做出這樣的:

HttpUtility.UrlEncode(Convert.ToBase64String(encrytedBuffer)); 

你知道爲什麼路由不起作用此值9XhNLs0tI%2fmr67rkJtfhaw%3d%3d它看起來好像沒什麼問題?

+0

當你說它不工作意味着你不能訪問你的控制器中的變量或它根本不加載路由視圖? – NSjonas

+0

它根本沒有加載路線。它加載默認路由。 – Veco

+0

你可以發佈你的完整路線decloration – NSjonas

回答

2

的問題是它被解碼爲「9XhNLs0tI/mr67rkJtfhaw = =「。你應該應該能夠通過雙重編碼/解碼來解決它。

+0

你是否建議:HttpUtility.UrlEncode(HttpUtility.UrlEncode(value))將解決這個問題? – Dalorzo

+0

@Dororzo不要說,你是對的。我不知道爲什麼,但我讀到,因爲你是snarky和複製/粘貼他現有的網址編碼。雙重網址編碼*應該*生產9XhNLs0tI%252fmr67rkJtfhaw%253d%253d – Chance

+0

哦,它有一個雙ToBase64編碼...有趣的 – Dalorzo