【问题标题】:I am getting an error "Cant convert from int to System.net.http.httpcompletionoption"我收到错误“无法从 int 转换为 System.net.http.httpcompletionoption”
【发布时间】:2017-09-14 15:51:31
【问题描述】:

我在谷歌上找不到任何关于这个错误的信息,我只是想知道是否有人以前遇到过这个问题。这是我第一次构建 REST Web API 并将其连接到我的 MVC 应用程序,只是尝试使用 ID 进行简单的 GET 以构建详细信息页面,并在下面发布代码。

 public ActionResult Details(Contact contactid)
    {
        Contact contact = new Contact();
        HttpClient client = new HttpClient();
        client.BaseAddress = new Uri("http://localhost:56194/");
        //CODE BELOW IS TAKING THE CLIENT AND ALLOWS IT TO ACCEPT JSON DATA
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
        HttpResponseMessage response = client.GetAsync("api/contacts", contactid.ID).ContinueWith((Posttank) => Posttank.Result.EnsureSuccessStatusCode());
        if (response.IsSuccessStatusCode)
        {
           contact  = response.Content.ReadAsAsync<Contact>().Result;
        }
        return View(contact);

    }

而我的 Web Api 方法是:

 [ResponseType(typeof(contact))]
    public IHttpActionResult Getcontact(int id)
    {
        contact contact = db.contacts.Find(id);
        if (contact == null)
        {
            return NotFound();
        }

        return Ok(contact);
    }

谢谢大家,

【问题讨论】:

  • 你从哪里得到这个错误?指向正确的代码行会有很大帮助。错误的意思是,在某些时候代码需要一个 HttpCompletionOption ,而您将它传递给一个 int 。从外观上看,它可能是您对 client.GetAsync 的调用,您似乎在传递一个字符串和一个不是有效重载的 int(有关调用它的方法,请参阅msdn.microsoft.com/en-us/library/…)。

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


【解决方案1】:
HttpResponseMessage response = client.GetAsync("api/contacts/"+contactid.ID).ContinueWith((Posttank) => Posttank.Result.EnsureSuccessStatusCode());

就这样试试吧..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-15
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 2017-08-13
    • 1970-01-01
    相关资源
    最近更新 更多