1

我有一个应用程序,并且我已将我的管理面板移动到区域,从那时起我无法点击管理面板 api 调用。这是主 api 注册和管理面板 api 注册的代码。

    //Api registration
    public static void Register(HttpConfiguration config)
    {

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );


        config.Routes.MapHttpRoute(
            name: "Secondary",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );


    //Area Registration
    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_panel",
            "AdminPanel/{controller}/{action}/{id}",
            new { controller = "Admin", action = "Index", id = UrlParameter.Optional }
        );


        context.Routes.MapHttpRoute(
          "Admin_Secondary",
          "AdminPanel/api/{controller}/{id}",
          new { id = RouteParameter.Optional }
      );
    }

我正在尝试使用 URL localhost/taw/adminpanel/api/SearchAPI 来访问它,但它不起作用。我的路由有什么问题?

4

1 回答 1

7

我发现了问题,路线的优先级造成了问题,我想我应该在发布问题之前先问鸭子。

      context.Routes.MapHttpRoute(
       "Admin_Secondary",
       "AdminPanel/api/{controller}/{id}",
       new { id = RouteParameter.Optional }
      );

必须先来

    context.MapRoute(
        "Admin_panel",
        "AdminPanel/{controller}/{action}/{id}",
        new { controller = "Admin", action = "Index", id = UrlParameter.Optional }
    );
于 2012-11-21T07:11:52.493 回答