Asp.net Web API属性路由404错误

本文关键字:路由 错误 属性 API net Web Asp | 更新日期: 2023-09-27 18:03:20

我不知道为什么我的属性路由不工作。

下面是我的设置:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Attribute routing
        config.MapHttpAttributeRoutes();
        // Convention-based routing
        config.Routes.MapHttpRoute(
            name: "API Default",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

这是我的控制器与我的路由属性:

[Route("api/v1.0/orders")]
public class OrdersV1Controller
{
    [APIAuthentication(RequireAuthentication = true)]
    [HttpGet]
    [Route("{id:int}")]
    public GetOrderResponse GetOrder(int id)
    { 
      .....
    }
}

我的全局asax文件:

public class Global : HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Populate;
    }
}

这是我正在测试的URL,它返回404未找到:

http://localhost:60105/api/v1.0/orders/111111

Asp.net Web API属性路由404错误

你的控制器需要是一个API控制器:

public class OrdersV1Controller : ApiController