【问题标题】:Missing classes for Attribute Routing in Web API 2.0: Two different System.Web.Http 5.0.0.0 dll's?Web API 2.0 中缺少属性路由类:两个不同的 System.Web.Http 5.0.0.0 dll?
【发布时间】:2013-12-11 10:46:42
【问题描述】:

由于 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 与从 Internet 下载的工作 Web API 2 解决方案中的 DLL 进行比较,则类如 ContinuationResult、FormattedContentResult、HttpVerbAttribute、NonActionAttribute、4 Override..-snip-..Attributes、RouteAttribute

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

【问题讨论】:

  • 今天我删除了所有 4.5.x 框架和 Visual Studio 2013 以重新安装它。遗憾的是,这并没有解决任何问题。

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


【解决方案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 

【讨论】:

    猜你喜欢
    • 2016-06-25
    • 2017-11-10
    • 2018-05-11
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多