覆盖应用程序根目录

时间:2011-12-01 19:34:44

标签: asp.net asp.net-mvc-3 iis-7.5

我在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.ActionLinkRedirectToAction等内容。

1 个答案:

答案 0 :(得分:1)

您可能需要到达请求上下文并在请求管道中尽早修改URL,以便在UrlHelper触发时,Request.RawUrl返回带有前缀的正确路径。很好的问题,因为我会尽快想出一个逻辑。