wengMQ 发表于 2021-6-22 14:16:22

ActiveReports15 Web Designer MVC 自定义路由时,报表api接口404 解决方案事例

本帖最后由 KearneyKang 于 2021-6-23 10:00 编辑

项目代码路径https://github.com/activereports ... les/WebDesigner_MVC

事例一:路由使用routes.MapMvcAttributeRoutes();增加路由{controller}/{action}/{id};报表api接口404
解决方案:1、增加类
public class RouteConfig2
      {
                public static void RegisterRoutes(RouteCollection routes)
                {

            routes.MapRoute(
               name: "Default",
               url: "{controller}/{action}/{id}",
               defaults: new { controller = "Design", action = "Index", id = UrlParameter.Optional }
         );
      }
      }
2、Startup.cs文件的Configuration方法最后面加代码
RouteConfig2.RegisterRoutes(RouteTable.Routes);
            RouteTable.Routes.RouteExistingFiles = true;

事例二:路由不用routes.MapMvcAttributeRoutes();增加路由{controller}/{action}/{id};报表api接口404
解决方案:
1、类修改RouteConfig

public class RouteConfig
      {
                public static void RegisterRoutes(RouteCollection routes)
                {
            //routes.MapMvcAttributeRoutes();

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


            routes.MapRoute(
               name: "Design",
               url: "",
               defaults: new { controller = "Design", action = "Index" }
         );

            routes.MapRoute(
               name: "DesignCreate",
               url: "create",
               defaults: new { controller = "Design", action = "Create", id = UrlParameter.Optional }
         );

            routes.MapRoute(
               name: "DesignEdit",
               url: "edit/{id}",
               defaults: new { controller = "Design", action = "Edit", id = UrlParameter.Optional }
         );

            routes.MapRoute(
               name: "DesignResource",
               url: "{file}",
               defaults: new { controller = "Design", action = "Resource", id = UrlParameter.Optional }
         );

            routes.MapRoute(
                name: "DataSetsGetDataSetsList",
                url: "api/datasets/list",
                defaults: new { controller = "DataSets", action = "GetDataSetsList", id = UrlParameter.Optional }
            );
            routes.MapRoute(
                            name: "TemplatesGetTemplatesList",
                            url: "api/templates/list",
                            defaults: new { controller = "Templates", action = "GetTemplatesList", id = UrlParameter.Optional }
                        );
            routes.MapRoute(
                            name: "DataSetsGetDataSetContent",
                            url: "api/datasets/{id}/content",
                            defaults: new { controller = "DataSets", action = "GetDataSetContent", id = UrlParameter.Optional }
                        );
            routes.MapRoute(
                            name: "TemplatesGetTemplate",
                            url: "api/templates/{id}/content",
                            defaults: new { controller = "Templates", action = "GetTemplate", id = UrlParameter.Optional }
                        );
            routes.MapRoute(
                            name: "TemplatesGetTemplateThumbnail",
                            url: "api/templates/{id}/thumbnail",
                            defaults: new { controller = "Templates", action = "GetTemplateThumbnail", id = UrlParameter.Optional });

      }2、增加类
public class RouteConfig2
      {
                public static void RegisterRoutes(RouteCollection routes)
                {

            routes.MapRoute(
               name: "Default",
               url: "{controller}/{action}/{id}",
               defaults: new { controller = "Design", action = "Index", id = UrlParameter.Optional }
         );
      }
      }
3、Startup.cs文件的Configuration方法最后面加代
RouteConfig2.RegisterRoutes(RouteTable.Routes);
      RouteTable.Routes.RouteExistingFiles = true;
完毕!!
如有疑问联系QQ546962925


Lenka.Guo 发表于 2021-6-22 17:38:42

很有价值的分享,奖励1000金币~对很多用户都特别有用~:hjyzw::hjyzw:
页: [1]
查看完整版本: ActiveReports15 Web Designer MVC 自定义路由时,报表api接口404 解决方案事例