将ASP.NET MVC根应用程序路由到MVC虚拟目录
问题描述:
我有一个MVC应用程序设置作为根应用程序。在那个根目录中,我有一个虚拟目录,也是一个MVC应用程序。我需要从根应用程序导航到虚拟目录。第一个障碍是找到在另一个命名空间中存在的控制器,而我能做到这一点如下..将ASP.NET MVC根应用程序路由到MVC虚拟目录
Dim namespaceControllers() As String = {"ExternalAssemblyName"}
routes.MapRoute(_
"virtualroute", _
"ExternalAssemblyName/{controller}/{action}/{id}", _
New With {.controller = "testvir", .action = "Index", .id = ""}, _
namespaceControllers _
)
routes.MapRoute(_
"Default", _
"{controller}/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = ""} _
)
它正确地找到控制器,但它仍试图找到应用程序根的观点,而不是虚拟目录。如果我将视图从虚拟目录移动到根目录,它将起作用。
答
路线可能会很棘手。我不能在没有看到您的应用程序的情况下推荐修补程序(具有更多经验的人可能能够),但我可以建议安装RouteDebugger tool以帮助解决路由问题。它帮助我解决了多次路由问题。
它也可作为NuGet包使用。