ASP.NET MVC路由根级别视图

Der*_*ken 6 asp.net-mvc asp.net-mvc-routing

我觉得这很容易,但我完全不知所措.

我希望一个控制器的视图位于应用程序的根级别,而不是在该控制器的子目录中,但我无法弄明白.

我想要这两个网址:

/ Info - 这应该在控制器"Home"上操作"Info"

/ Admin/ - 这应该是控制器"Admin"上的操作"索引"(默认)

到目前为止,无论我尝试过什么,第一条路线最终都会捕捉到它们.我似乎无法将两者分开.

那个Info页面甚至不需要控制器,它是静态的,但我确实想要使用母版页.可能有一个更简单的方法来解决这个问题,但我也没想出来.

我能想到的就是创建一个Info控制器,并将Views/Home/Info移动到Views/Info/Index,但它有一定的气味.

我能够在rails中使用以下方法执行此操作:

  map.connect ':controller/:action/:id'
  map.connect ':action', :controller => 'home'
Run Code Online (Sandbox Code Playgroud)

Arn*_*psa 6

你只需要适当的路线.在你的情况下:

routes.MapRoute(
                "Info",
                "Info",
                new { controller = "Home", action = "Info" }

routes.MapRoute(
                "Admin",
                "Admin",
                new { controller = "Admin", action = "Index" }
Run Code Online (Sandbox Code Playgroud)

但我建议你采用这种方法.

如果您需要更改视图/偏见视图的默认物理位置,
请查看如何创建自定义视图引擎.