【问题标题】:How to Change Default URL in MVC5如何在 MVC5 中更改默认 URL
【发布时间】:2023-06-10 12:46:02
【问题描述】:

我的routeconfig.cs 文件中有一个默认路由

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

它将Home/Index 隐藏为浏览器中的 URL。我的目标是显示localhost:44300/Login 而不是localhost:44300/Home/Index(但在内部它会调用Home/Index),我想将Home/Details 操作方法隐藏为url

【问题讨论】:

  • 默认值:new { controller = "Account", action = "Login", id = UrlParameter.Optional }

标签: asp.net-mvc asp.net-mvc-5 routing


【解决方案1】:

您可以将默认路由更改为Account 控制器和您必要的Action 方法:

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Account", action = "Login", id =   
            UrlParameter.Optional }
        );

更新:

这是不可能的,因为 MVC 有一个约定 RouteTable 应该是这样的: controller/action 或反之亦然。

如果你从路由中排除控制器,你会得到一个异常:

匹配的路由不包含“控制器”路由值,它 是必需的。

【讨论】: