zoukankan      html  css  js  c++  java
  • .Net Core 2.2 Areas 路由,第一个MapAreaRoute 设置匹配多个Controller

    在.Net Core 2.2 版本中使用 Area, 发现配置第一个(Admin) MapAreaRoute 路由可以匹配多个 {Controller}/{Action}

    路由设置

                app.UseMvc(routes =>
                {
                    //routes.MapRoute(
                    //   name: "areas",
                    //   template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
                    // ); 
                    routes.MapAreaRoute(
                    name: "MyAreaAdmin",
                    areaName: "Admin",
                    template: "Admin/{controller=home}/{action=index}/{id?}");
    
                    routes.MapAreaRoute(
                       name: "MyAreaAPI",
                       areaName: "API",
                       template: "API/{controller=home}/{action=index}/{id?}");
    
                    routes.MapRoute(
                        name: "default",
                        template: "{controller=Home}/{action=Index}/{id?}");
                });

    项目截图

    浏览器访问

    /home/index 可以正常访问,但是 /admin/home/index 匹配多个端点

    解决办法

    这是因为 从 .Net Core 2.2 版本开始 默认开启了端点路由,我们把他禁用就可以了,使用传统路由模式

        services.AddMvc(options =>
        { 
            //Core 2.2+ 默认启动端点路由
            options.EnableEndpointRouting = false;
        }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
  • 相关阅读:
    工单相关函数
    ABAP 没有保存的长文本,如何取值
    小细节
    DEMO程序 排序
    ABAP 中的消息类型和处理方式
    那些 诡异的表格
    F4搜索帮助~出口函数
    使用XML的方式导出EXCEL
    更改销售订单某些字段和按钮 不可编辑
    ABAP-如何读取内表的字段名称
  • 原文地址:https://www.cnblogs.com/Zing/p/13343232.html
Copyright © 2011-2022 走看看