缺少Web API 2.0中的属性路由类:两个不同的System.Web.Http 5.0.0.0 dll?

时间:2013-11-26 10:34:23

标签: c# asp.net asp.net-mvc-4 asp.net-web-api asp.net-mvc-5

由于Web API 2的新功能,我最近使用Web API 1将我的MVC4解决方案升级为带有Web Api 2的MVC5解决方案。我跟着these official upgrading steps启动并运行了我的解决方案。

但是,当我尝试使用新功能时,我注意到我的System.Web.Http出了问题(从C:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET Web Stack 5 \ Packages中引用\ Microsoft.AspNet.WebApi.Core.5.0.0 \ LIB \ net45 \ System.Web.Http.dll)。如果我将我的5.0.0.0 System.Web.Http dll与从互联网上下载的工作Web API 2解决方案中的DLL进行比较,那么类包括ContinuationResult,FormattedContentResult,HttpVerbAttribute,NonActionAttribute,4 Override ..- snip - .. Attributes,RouteAttribute

虽然我使用了正确的参考,但看起来缺少所有新的Web API 2功能。 这怎么可能?

1 个答案:

答案 0 :(得分:1)

看起来我正在阅读的Web Api 2.0教程使用的是System.Web.HTTP的预发布版本。对Google中“example-application-foldername”的愚蠢搜索将我带到this article on asp.net forum

changeset on codeplex了解到我在重构后删除了我失踪的课程。 Some changes were made after the Release Candidate,简而言之:自从v5.0进入RTM后,您应该使用属性路由,如下所示:

[Route("actors/{actorId}/movies")] // Web API 2.0 Official release

而不是:

[HttpGet("actors/{actorId}/movies")] //Web API 2.0 prerelease