我在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
等内容。
答案 0 :(得分:1)
您可能需要到达请求上下文并在请求管道中尽早修改URL,以便在UrlHelper触发时,Request.RawUrl返回带有前缀的正确路径。很好的问题,因为我会尽快想出一个逻辑。