我想从 asp.net MVC 中的 URL 中删除控制器名称

问题描述 投票:0回答:1

我在 asp.net MVC 中创建了一个名为 Member 的区域。我还在该区域创建了两个控制器,即 AccountController 和 DashboadController。

在 DashboadController 中有 3 个方法,分别是 Indext、MemberList 和 Create。

当我运行项目并转到 MemberAre 时,URL 如下所示 “https://localhost:44394/Member/Dashboad”

当我进入会员列表页面时,URL如下 “https://localhost:44394/Member/Dashboad/MemberList”

我想从 URL 中删除 Dashboad ControllerName。我该怎么办??

我在 RouteConfit 文件中设置以下代码。

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute( 名称:“默认”, 网址:“{action}/{id}”, 默认值:new {controller =“Home”,action =“Index”,id = UrlParameter.Optional} );

asp.net-mvc model-view-controller
1个回答
0
投票

在您的

MemberAreaRegistration
类中,您可以定义
DashboadController
的路由规则/约束,无需控制器名称路径:
Member/{action}/{Id}

确保在默认路由规则/约束之前应用此路由规则/约束。

public class MemberAreaRegistration : AreaRegistration 
{
    public override void RegisterArea(AreaRegistrationContext context) 
    {
        context.MapRoute(
            "Member_Dashboad",
            "Member/{action}/{id}",
            new { controller = "Dashboad", action = "Index", id = UrlParameter.Optional }
        );

        context.MapRoute(
            "Member_default",
            "Member/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional }
        );
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.