【发布时间】: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