我正在尝试在现有应用程序的子目录中部署 ASP.NET MVC 应用程序,但遇到了一些路由问题。我已经设置了文件夹结构,以便 MVC 应用程序的所有二进制文件和配置文件都正确位于根目录中,而其余内容位于子目录中。此外,我更新了 MVC 应用程序中的所有路由以反映子目录;然而,对应用程序的每个请求都会产生:

传入请求与任何路线都不匹配。

所有定义的路由都将被忽略,包括默认路由:

routes.MapRouteLowercase(
    "Main_Default",
    "blog/{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" }
);

我尝试启用 路由调试 来测试这个问题,但即使这样也没有被路由到。关于我还可以尝试什么有什么建议吗?

笔记: 这个问题是 不是 A 复制.

有帮助吗?

解决方案 2

看来我发现了问题。

除了二进制文件和配置文件之外,Global.asax 还必须放置在根目录中才能执行其代码。

多谢你们。:)

其他提示

尝试将其作为虚拟目录运行,而不仅仅是目录,否则您的路由将不会被调用。您不需要将虚拟目录的名称放入路由中。

这是我在 v-dir MVC 应用程序中设置的一条路线,效果很好......

routes.MapRoute(
    "Default",                                              // Route name
    "{controller}/{action}/{id}",                           // URL with parameters
    new { controller = "Tour", action = "Index", id = "" }  // Parameter defaults
);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top