ASP.NET MVC ActionLink与URL Rewrite的区别

4
有一个ASP.NET MVC 2的Web应用程序,我们称之为myapp.com。我想要动态子域名(用户创建的类别),如something.myapp.com。因此,我设置了URL重写规则,将something.myapp.com重写为myapp.com/something(由MVC处理下一步...)。但是,第一个ActionLink会抛出异常System.Web.HttpException: Cannot use a leading .. to exit above the top directory,因为显然,对于它来说,URL仍然是something.myapp.com。有没有优雅的解决方案?我不想重定向(我想在浏览器中保留URL something.myapp.com)。同时,我不喜欢编写自定义ActionLink,这是MVC中最基本的东西之一......谢谢大家:) Roman
1个回答

2
你首先要理解的是路由和重写之间的区别。这篇博客最能详细地描述这一区别:http://www.coderjournal.com/2010/03/difference-between-routing-rewriting/
作为上述文章的跟进,还创建了一个项目,用于编辑内联路由与重写,以帮助展示它们之间的差异,更重要的是展示它们如何一起使用:http://www.coderjournal.com/2010/03/editable-mvc-routes-apache-style/
但是直接回答你的问题,你需要确保URL 重写器在路由之前被处理,这样一切都会提前被修改和规范化。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接