在根目录下添加子路由,但在所有控制器上添加

时间:2018-01-16 21:19:42

标签: asp.net-mvc routing

我有一个带有以下路由系统的ASP.NET MVC Web应用程序:

本地主机:20119

  • HomeController
  • AnotherController
  • ThridController

我想修改它,以便还有一个“包含”所有路由的子路径/目录,例如:

本地主机:20119

  • AppName的

    • HomeController
    • AnotherController
    • ThridController

所以不要转到以下网址:

  

http://localhost:20119/Home/Index

用户将改为

  

http://localhost:20119/AppName/Home/Index

我正在使用:

  • Visual Studio 2012 -.NET 4.5

我相信MVC 4:

<dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>

这些是我的配置: enter image description here

2 个答案:

答案 0 :(得分:2)

您应该只能在RouteConfig.cs中的路由中添加另一个图层。例如,您可以执行以下操作:

routes.MapRoute(
  name: "Default",
  url: "AppName/{controller}/{action}",
  defaults: new { controller = "Home", action = "Index" }
);

答案 1 :(得分:0)

如果要将路由方案绑定到物理目录位置,则会有一个开源项目,它只执行名为MvcCodeRouting的开放项目(NuGet上提供)。 MVC中没有任何内容可以将路由与物理目录位置相关联,但MVC可以扩展为在该项目中执行。