我收到一个错误“无法从int转换为System.net.http.httpcompletionoption”
问题描述:
我无法找到任何关于此错误的谷歌,我只是想知道是否有人遇到过这个问题。这是我第一次构建一个REST Web API,并且将它连接到我的MVC应用程序,只是尝试使用一个ID来创建一个简单的GET来构建详细信息页面。我收到一个错误“无法从int转换为System.net.http.httpcompletionoption”
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);
}
谢谢你们,
答
HttpResponseMessage response = client.GetAsync("api/contacts/"+contactid.ID).ContinueWith((Posttank) => Posttank.Result.EnsureSuccessStatusCode());
只是尝试这样的..
你在哪里得到这个错误?指向正确的代码行会有很大帮助。但是,错误的意思是,在某些时候,代码需要一个HttpCompletionOption,而你正在将它传递给一个int。从外观上看,它可能是你对client.GetAsync的调用,你似乎在传递一个字符串和一个不是有效重载的int(参见https://msdn.microsoft.com/zh-cn/library/system .net.http.httpclient.getasync(v = vs.118).aspx的方式来调用它)。 – Chris