如何根据不同的虚拟路径欺骗MVC渲染链接?

时间:2008-12-09 03:15:59

标签: asp.net-mvc subdomain asp.net-mvc-routing virtual-path

我在discountasp.net上使用子域名addon运行了一堆应用程序。由于共享托管我不能有多个IIS站点,我还编写了一个HTTP模块,允许子文件夹中的站点像在根目录中运行一样运行。例如,我可以在blog.dandoes.net(实际上是dandoes.net)上托管我的博客,而不是在dandoes.net/blog上托管我的博客。直到现在,当我尝试将它与MVC一起使用时,这一直是着名的工作。

HtmlHelper根据应用程序的虚拟路径生成其URL,而不是URL中的路径数据。所以,如果我在blog.dandoes.net上,并且我想链接到blog.dandoes.net/Samples,我可能会有这样的代码:

<%=Html.ActionLink("Samples", "Index", "Samples")%>

在正常情况下,这会生成url blog.dandoes.net/Samples,但它会生成blog.dandoes.net/Blog/Samples,因为虚拟目录是/ Blog。

我可能需要花5分钟写一些非常hacky来做我想做的事情,但我认为如果我能让MVC框架做我想做的事情会非常有趣。

那么,有什么方法可以让它呈现正确的网址吗?

1 个答案:

答案 0 :(得分:1)

HTML帮助程序只是一个向您的代码返回字符串的类。您需要做的就是编写自己的帮助程序类,以您需要的格式输出字符串。