我在iis中有一個應用程序,可用作http://localhost/app/
,這意味着由UrlHelper
創建的所有相關鏈接均解析爲http://localhost/app/???
。替代應用程序根
例子: Url.Content("~/images/background.png")
分解成/app/images/background.png
現在的問題是,ISA服務器將應用程序添加前綴,使應用程序可從外部爲http://foo.com/prefix/app/???
現在MVC將正確處理該請求,因爲它仍然認爲請求路徑只是/app/???
,但在使用UrlHelper
時不會生成與該前綴的鏈接。
所以問題是 - 有沒有什麼辦法可以告訴MVC生成不同於iis中定義的虛擬路徑的鏈接?
舉例: Url.Content("~/images/background.png")
應顯示爲/prefix/app/images/background.png
我真的不希望創建自己的UrlHelper
擴展,因爲這不會影響這樣的東西Html.ActionLink
或RedirectToAction
。
您是否找到解決您的問題的方法?我有完全相同的問題... –
不幸的是沒有。我最終通過在URL助手上編寫包裝器來「解決」它,只是在它們前面加上了所有url。你可以在'BeginRequest'或者@Roman提到的地方改變請求的URL來做一些魔術,但我不確定這是否值得麻煩。 –