在MVC中使用多个控制器时如何在URL中隐藏控制器名称?

时间:2015-09-30 14:07:50

标签: c# asp.net-mvc asp.net-mvc-routing

我对ASP.NET,MVC中的路由有疑问。如果我使用两个或更多控制器,我如何进行路由以隐藏URL中的控制器名称?我设法隐藏了第一个控制器名称,但是当我想要隐藏第二个控制器名称时它会变得棘手。

我认为这可能是不可能的,因为网络服务器需要知道要查找的控制器,因此它们需要在URL中使用不同的路由,但API应该可以通过以下操作找到适当的控制器 - 名称数据可用吗?

RouteConfig.cs:

        routes.MapRoute(
           name: "proj",
           url: "p/{action}",
           defaults: new { controller = "Project" }
       );

        routes.MapRoute(
           name: "Default",
           url: "{action}",
           defaults: new { controller = "Access", action = "login" }
       );

根据我所在的控制器,网址如下所示:

http://localhost:56590/create       <- AccessController
http://localhost:56590/p/overview   <- ProjectController

这是我浏览网站时想要的样子:

http://localhost:56590/create       <- AccessController
http://localhost:56590/overview     <- ProjectController

如果可能的话,如何使用路由实现这一目标?

非常感谢任何解释:)

0 个答案:

没有答案