0

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

4

2 回答 2

1

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

请注意,我所说的关于应用程序调用的内容很可能并不完全正确。但老实说,我不知道能否对一个url重写请求的生命周期给出一个完全准确的描述;我只是希望我用简化的术语粗略地估计发生的事情。只需了解有关 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

于 2012-11-15T02:34:58.927 回答
0

所以你有两个应用程序 A 和 B。你说你试图创建 MVC 路由但是在哪个应用程序中?如果您可以多解释一下您要达到的目标,那将更容易回答。

ASP.net 路由(也可在 Web 表单中使用)可以采用您想要的任何形式。您必须记住的一件事是路线图是贪婪的。因此,如果首先找到最通用的路线,无论如何它都不会检查下面的任何内容。所以顺序应该是最具体的,最后一个应该是最一般的。

检查这篇文章http://yogiorchard.azurewebsites.net/archiving-items-and-a-routing-lesson

希望这可以帮助

于 2012-11-14T23:32:43.907 回答