4

有一个 ASP.NET MVC 2 Web 应用程序,我们称之为 myapp.com。我想要像 something.myapp.com 这样的动态子域(用户创建的类别)。所以我设置了 URL 重写,规则重写 something.myapp.com -> myapp.com/something (接下来由 MVC 处理..)。但是,第一个 ActionLink 抛出异常

System.Web.HttpException:无法使用前导 .. 退出顶级目录

因为,很明显,它的 URL 仍然是 something.myapp.com。有什么优雅的解决方案吗?我不想重定向(我想在浏览器中保留 URL something.myapp.com)。我也不喜欢编写自定义 ActionLink 的想法,这是 MVC 中一些最基本的东西......

谢谢大家:)

罗马

4

1 回答 1

2

您首先要了解的是路由和重写之间的区别。这个博客可以很好地描述这一点:

http://www.coderjournal.com/2010/03/difference-between-routing-rewriting/

作为文章的后续,还创建了一个用于编辑 Routing inline with Rewriting 的项目,以帮助展示差异,更重要的是如何将它们一起使用。

http://www.coderjournal.com/2010/03/editable-mvc-routes-apache-style/

但要更直接地回答您的问题,您需要确保在路由之前处理 URL 重写器,以便提前为您修改和规范化所有内容。

于 2010-04-15T13:59:37.200 回答