2012-11-14 190 views
0

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

回答

0

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

ASP.net路由(也可以在网络表单中)可以采取任何你想要的形式。你必须记住的一件事路线图是贪婪的。因此,如果大多数通用路由首先被发现,那么无论如何都不会检查下面的任何内容。所以顺序应该是最具体的,最后一个应该是最一般的。

检查这个帖子http://yogiorchard.azurewebsites.net/archiving-items-and-a-routing-lesson

希望这有助于

+0

我说这些应用程序中的路线是在问题。 ;) –

1

如果你想要一个应用程序重写应用程序B,你将不得不增加一些URL重写配置,而不是MVC路由逻辑,这,如果您使用IIS7 +,我相信您应该在AppA的web.config文件中进行设置。IIS必须知道将请求转发给哪个应用程序;在调用MVC路由的时候,应用程序已经在那个时候被选中(一旦实际的应用程序被调用*,你不能取消选择B)。你也许可以在App B中设置url重写规则来指向应用程序A,但我不太确定这是如何工作的。

请注意,我所说的关于应用程序调用的说法很可能不完全正确。但说实话,我不知道我是否可以完全准确地描述url重写请求的生命周期;我只是希望我粗略地近似了简单的说法。只要详细了解网址在IIS和IIS7的请求生命周期改写访问以下链接:

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