带有 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);
我究竟做错了什么?