带有WebAPI端点的ASP.NET MVC4项目。我正在尝试为MVC控制器和API控制器配置AR。我添加了以下内容:
现在我在App_Start中看到另外两个文件:AttributeRoutingConfig和AttributeRoutingHttpConfig。
第一个有这个:
[assembly: WebActivator.PreApplicationStartMethod(typeof(AttributeRoutingConfig), "Start")]
public static class AttributeRoutingConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
GlobalConfiguration.Configuration.Routes.MapHttpAttributeRoutes();
}
public static void Start()
{
RegisterRoutes(RouteTable.Routes);
}
}
第二个有这个:
[assembly: WebActivator.PreApplicationStartMethod(typeof(AttributeRoutingHttpConfig), "Start")]
public static class AttributeRoutingHttpConfig
{
public static void RegisterRoutes(HttpRouteCollection routes)
{
routes.MapHttpAttributeRoutes();
}
public static void Start()
{
RegisterRoutes(GlobalConfiguration.Configuration.Routes);
}
}
在我的GlobalConfig中我有这个:
GlobalConfiguration.Configure(WebApiConfig.Register);
在我的WebApiConfig中,我有:
config.MapHttpAttributeRoutes();
我尝试POST到装有[POST(“api / message”)“的路线时出现的错误:
The constraint entry 'inboundHttpMethod' on the route with route template 'api/message' must have a string value or be of a type which implements 'IHttpRouteConstraint'.
在我的Global.asax中:
GlobalConfiguration.Configure(WebApiConfig.Register);
RouteConfig.RegisterRoutes(RouteTable.Routes);
我做错了什么?
答案 0 :(得分:2)
您正在尝试结合Tim McCall的软件包+ Web API 2的内置属性路由功能。不要将软件包安装为已在Web API 2版本中构建的软件包。
请检查:http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2