2011-08-05 56 views
2

我有一個MVC3操作需要一個參數(URL),其中可能有一個查詢字符串。我的動作簽名如下所示:MVC3從我的參數中剝離查詢字符串

GetUrl(string url) 

我希望能夠把它的URL,它的作品每一次,除非在URL中的查詢字符串。例如,如果我導航到:

MyController/GetUrl/www.google.com 

url參數與「www.google.com」 - 完美匹配。但是,如果我發送 MyController/GetUrl/www.google.com /?id = 3 url參數會以「www.google.com/」的形式出現。我如何讓MVC3在該參數中提供整個URL? - 包括查詢字符串?

+1

使用網址編碼 –

回答

1

它很簡單,只是URL。在頁面上編碼傳遞的URL,但是你打開自己的一些可能的安全問題。

我建議你加密網址然後編碼它,然後通過作爲你的價值,保護你的人只是傳入任何東西到你的應用程序。

1

這是因爲系統認爲id = 3作爲自己的查詢字符串。在視圖中構建鏈接時,需要使用@ Url.Encode將原始URL字符串轉換爲編碼字符串,以作爲控制器的參數接受。