【问题标题】:Compiler can't find PostAsJsonAsync method编译器找不到 PostAsJsonAsync 方法
【发布时间】:2016-05-04 18:00:02
【问题描述】:

我正在构建一个调用 RESTful API Web 服务的 ASP.NET MVC 5 razor 应用程序。API 中的一个调用使用 POST 方法。我的代码中有这一行:

var response = httpClient.PostAsJsonAsync("/api/account/AddUserAccount", item).Result;

现在,我能够构建该行而不会显示任何错误,但是当我构建应用程序时,我得到了

“HttpClient”不包含“PostAsJsonAsync”的定义,并且找不到接受“HttpClient”类型的第一个参数的扩展方法“PostAsJsonAsync”

我已经对错误进行了搜索,并在 Stack Overflow 上找到了帖子,上面写着要添加对 System.Net.Http.Formatting.dll 的引用,但我在我的系统上找不到该 DLL。如何解决此错误?

【问题讨论】:

  • 你的意思是System.Net.Http.Formatting
  • 我安装了它,但它没有解决问题。现在我收到有关无法解析 System.Net.Http 和项目 TestAccountService 中的依赖 System.Net.Http.Formatting.Extension 5.2.3 不支持框架 DNXCore,Version=v5.0 的消息。
  • 如果您使用的是 DNX,那么您不能使用 PostAsJsonAsync 方法。请尝试以下操作:var response = await client.PostAsync("api/values", new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(item);, Encoding.UTF8,"application/json"));
  • 我能够得到您的第二个编译建议。谢谢。如果你把它作为一个答案,我会给你功劳。
  • @TonyVitabile - 我只是将所有 cmets 总结为答案。

标签: c# asp.net-mvc


【解决方案1】:

如果您要使用PostAsJsonAsync 方法,那么您需要使用以下NuGet Package

但是,如果您使用的是 DNX,它将无法工作,因为它不支持 DNX(还没有?)。

在这种情况下,您可以执行以下操作:

var response = await client.PostAsync("api/values", new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(item);, Encoding.UTF8,"application/json"));

这应该会有所帮助。

【讨论】:

    【解决方案2】:

    您缺少 using 语句。

    using System.Net.Http; /* probably this one */
    using System.Net.Http.Headers;
    

    当然,using 语句不好,除非你有 System.Net.Http.Formatting(.dll) 引用(正如您在搜索中发现的那样)

    这个 dll 来自一个 nuget 包!

    Microsoft.AspNet.WebApi.Client

    最新链接:

    https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Client/

    我在这里的版本(我在其中找到了那个 .dll 的副本)

    https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Client/4.0.20710

    【讨论】:

    • 我在“添加引用”对话框中看到的唯一 DLL 是 System.Net.dll 和 System.Net.Http.dll;我没有看到 System.Net.Http.Formatting.dll
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 2019-01-24
    • 2012-01-14
    • 2014-03-25
    相关资源
    最近更新 更多