我有采取基於用戶名字符串ID參數行動以UrlEncode鏈路ID的可以包括需要編碼的字符,比如「用戶?1」與ASP.NET MVC的HtmlHelper擴展方法
如果我使用ActionLink()
來生成鏈接,傳遞字符串而不進行編碼,它會生成如下鏈接:http:\\localhost\controller\action\user?1
,並且該操作將作爲id傳遞「user」。
如果我將該字符串傳遞給ActionLink
之前,則生成的鏈接爲:http:\\localhost\controller\action\user%253f1
,因爲ActionLink將爲您編碼'%'字符。除了這看起來很醜陋之外,它還會在跟蹤我尚未追蹤原因的鏈接時生成HTTP錯誤400 - 錯誤請求。
有沒有什麼辦法可以生成url:http:\\localhost\controller\action\user%3f1
?
想法是,url slug實際上是用戶生成的字符串,在當前情況下,它是他們的用戶名。不幸的是,我不能限制允許的字符,因爲它是現有用戶的現有系統。 – Giraffe 2009-02-02 10:54:13