约束条目 'inboundHttpMethod' 必须具有字符串值或属于实现“IHttpRouteConstraint”的类型

The constraint entry 'inboundHttpMethod' must have a string value or be of a type which implements 'IHttpRouteConstraint

我正在尝试实现属性路由,但出现以下错误。

The constraint entry 'inboundHttpMethod' on the route with route template 'authenticate' must have a string value or be of a type which implements 'IHttpRouteConstraint

我已经在 Global.asax、

中添加了代码行
    AttributeRoutingHttpConfig.RegisterRoutes(GlobalConfiguration.Configuration.Routes);

以及 AttributeRoutingHttpConfig.cs、

中的以下代码
routes.MapHttpAttributeRoutes(cfig =>
            {
                cfig.UseLowercaseRoutes = true;
                cfig.AutoGenerateRouteNames = true;
                cfig.AddRoutesFromAssemblyOf<AuthenticateController>();
                cfig.InMemory = true;
            });

任何人都知道这个问题,实际上我是 c# 的新手。

您使用了错误的包。

据我所知,您正在尝试使用 this NuGet package(旧的且不再受支持)来实现属性路由。

此包支持 Web API v1(程序集版本 4.*),不支持 Web API 2(程序集版本 5.*)。

Web API 2 对属性路由的支持是本机的。本教程可以帮助您实现这样的功能:Attribute Routing in Web API 2

这是一个小例子:

[RoutePrefix("v1/myexample")]
public MyController : ApiController {
    [Route("foo")]
    public string GetFoo()
    {
        return "foo";
    }
}

可以在以下端点完成此操作:http://myhost/v1/myexample/foo

记得在您的 WebApiConfig.cs 文件中注册它们:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        // Other Web API configuration
    }
}