有了這樣一個http://abc.com/myid/ab%2fcd URL(其中%2F是一個轉義斜槓),asp.net將取消轉義的%2F,這樣從我的應用程序的角度來看(從asp.net的MVC的角度來看)的網址是:http://abc.com/myid/ab/cd如何讓asp.net不自動unescape在網址中跳過正斜槓?
由於我的應用程序使用的是asp.net mvc,因爲asp.net的unescaping會導致該路線不匹配,所以如果我想要指定類似「/ myid/{id}」的路由,此行爲很容易導致路由問題。
按照這個問題的答案:URL-encoded slash in URL,並根據這個MSDN網頁:http://msdn.microsoft.com/en-us/library/ee656542.aspx解決方案(在.NET 4.0中)是擺在你的web.config以下:
<uri>
<schemeSettings>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
但我做不到實際上它沒有起作用 - 「%2f」仍然自動轉換爲「/」。有誰知道爲什麼配置設置可能不適合我,或有任何其他建議?
它需要在machine.config ...或app.config中。 Web.config不會工作 – LamonteCristo 2013-11-21 15:33:07