Ind*_* KP 2 c# asp.net-mvc-routing asp.net-web-api
我正在尝试实现属性路由,但出现以下错误。
具有路由模板“authenticate”的路由上的约束条目“inboundHttpMethod”必须具有字符串值或者是实现“IHttpRouteConstraint”的类型
我已经在 Global.asax 中添加了代码行,
AttributeRoutingHttpConfig.RegisterRoutes(GlobalConfiguration.Configuration.Routes);
Run Code Online (Sandbox Code Playgroud)
以及 AttributeRoutingHttpConfig.cs 中的以下代码,
routes.MapHttpAttributeRoutes(cfig =>
{
cfig.UseLowercaseRoutes = true;
cfig.AutoGenerateRouteNames = true;
cfig.AddRoutesFromAssemblyOf<AuthenticateController>();
cfig.InMemory = true;
});
Run Code Online (Sandbox Code Playgroud)
任何人都知道这个问题,实际上我是 c# 新手。
您使用了错误的软件包。
据我所知,您正在尝试使用此 NuGet 包(旧的且不再受支持)来实现属性路由。
此包支持Web API v1(程序集版本 4.*),而不支持Web API 2(程序集版本 5.*)。
Web API 2 对属性路由的支持是原生的。本教程可以帮助您实现这样的功能:Web API 2 中的属性路由
这是一个小例子:
[RoutePrefix("v1/myexample")]
public MyController : ApiController {
[Route("foo")]
public string GetFoo()
{
return "foo";
}
}
Run Code Online (Sandbox Code Playgroud)
可以在以下端点达到此操作:http://myhost/v1/myexample/foo。
请记住将它们注册到您的WebApiConfig.cs文件中:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
// Other Web API configuration
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1965 次 |
| 最近记录: |