约束条目 '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
}
}
我正在尝试实现属性路由,但出现以下错误。
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
}
}