虚拟目录覆盖MVC路由

时间:2012-11-14 20:37:55

标签: asp.net-mvc iis-7.5

我有一个Web应用程序,A,它有一个虚拟目录也是一个应用程序,B。我试图在A中创建一个MVC路由,使得URL看起来在虚拟目录中但仍然处理由A而不是B.然而,它似乎被忽略了。有没有办法让MVC路由优先于虚拟目录?

2 个答案:

答案 0 :(得分:1)

如果您希望App A覆盖App B,您将不得不添加一些 Url Rewriting 配置,而不是MVC路由逻辑,如果您使用的是IIS7 +,我相信,您应该在App A的web.config文件中设置.IIS必须知道将请求转发到哪个应用程序;在调用MVC路由时,已经在该点选择了应用程序(一旦调用实际应用程序,就不能取消选择 B)。您也可以在App B中设置url重写规则以指向App A,但我不太确定它是如何工作的。

请注意,我所说的应用程序调用很可能并非严格要求。但说实话,我不知道我是否可以完整准确地描述网址重写请求的生命周期;我只是希望我粗略地接近简化术语。只需了解有关IIS和IIS7请求生命周期中URL重写的更多信息,请访问以下链接:

http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module http://msdn.microsoft.com/en-us/library/bb470252(v=vs.100).aspx

答案 1 :(得分:0)

所以你有两个应用程序A& B.你说你试图创建MVC路线,但在哪个应用程序?如果你能解释一下你想要实现的目标,那么回答起来会更容易。

ASP.net路线(也可在网络表单中提供)可以采用您想要的任何形式。你必须记住的一点是路线图是贪婪的。因此,如果首先找到大多数通用路线,则无论如何都不会检查下面的任何内容。所以订单应该是最具体的,最后一个应该是最一般的。

查看此帖子http://yogiorchard.azurewebsites.net/archiving-items-and-a-routing-lesson

希望这有帮助