代码之家  ›  专栏  ›  技术社区  ›  Nathan Taylor

ASP.NET MVC-在子目录中运行

  •  3
  • Nathan Taylor  · 技术社区  · 15 年前

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

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

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

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

    我试着启用 RouteDebug 来测试这个问题,但即使这样也不能解决。还有什么我可以尝试的建议吗?

    注: 这个问题是 duplicate .

    2 回复  |  直到 15 年前
        1
  •  0
  •   skolima    15 年前

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

    这是我在一个v-dir mvc应用程序中设置的一条路线,运行正常…

    routes.MapRoute(
        "Default",                                              // Route name
        "{controller}/{action}/{id}",                           // URL with parameters
        new { controller = "Tour", action = "Index", id = "" }  // Parameter defaults
    );
    
        2
  •  0
  •   Nathan Taylor    15 年前

    看来我发现了问题。

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

    谢谢大家。:)