由於複雜的原因,我不會進入,我們有一些請求進入我們的應用程序/blah/[**Token**]
(這是字面的,沒有一個是佔位符)。如何忽略包含帶星號的路徑(使用IgnoreRoute)(或將它們映射到靜態資源)
目前我們從MVC的錯誤說,它不能找到一個IController這個每請求到來時
願我們的要求之一:a)404或b)成爲了一個靜態佔位符圖片。
盡我們所能,我們無法弄清楚如何在IgnoreRoute/Route調用中轉義這些字符,以便按照字面處理它們。例如。我們已經嘗試過:
IgnoreRoute("blah/\[\*\*Token\*\*\]")
IgnoreRoute("blah/[\*\*Token\*\*]")
但是問題仍然存在。
我們如何逃避這條路徑,使得對blah/[**Token**]
的實際請求被忽略並導致404(或者,我們如何將這條確切路徑映射到靜態圖像)?
注意:我們已經編輯了web.config,以便*不是不允許的字符。我們不能(目前)很容易修改傳入的請求路徑,我們只是想阻止我們的錯誤日誌填滿,當它發生:-)
你試過網址編碼你的字符?對於*,%2A,對於[],%5B%5C? IgnoreRoute(「blah /%5B%2A%2AToken%2A%2A%5C」) – Bardo
您是否嘗試過使用IRouteConstraint而不是正則表達式字符串?它[更快](http://samsaffron.com/archive/2011/10/13/optimising-asp-net-mvc3-routing),更容易隔離測試。 – Keith