我試圖將C#對象傳遞給web api控制器。 api被配置爲存儲發佈給它的Product類型的對象。我已經使用Jquery Ajax方法成功添加了對象,現在我試圖在C#中獲得相同的結果。發送C#對象到webapi控制器
我創建了一個簡單的控制檯應用程序發送POST請求的API:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public decimal Price { get; set; }
}
static void Main(string[] args)
{
string apiUrl = @"http://localhost:3393/api/products";
var client = new HttpClient();
client.PostAsJsonAsync<Product>(apiUrl, new Product() { Id = 2, Name = "Jeans", Price = 200, Category = "Clothing" });
}
的postproduct方法永遠不會調用,如何將這些對象發送到控制器?用於添加物品
方法:
public HttpResponseMessage PostProduct([FromBody]Product item)
{
item = repository.Add(item);
var response = Request.CreateResponse<Product>(HttpStatusCode.Created, item);
string uri = Url.Link("DefaultApi", new { id = item.Id });
response.Headers.Location = new Uri(uri);
return response;
}
你的代碼看起來很好,你在小提琴手中看到了什麼?你在服務器上啓用了webapi跟蹤嗎? –
我可以看到來自我使用的表單的請求,HttpClient發送的請求在提琴手中都不可見。 我也將api上傳到:http://producttestapi.azurewebsites.net/api/products,但沒有任何來自HttpClient的請求也達到了api要求。 – neo112
此外,請檢查該網址的index.html,即我用於通過ajax發送對象的表單,該表單可以工作,因此API可以。 – neo112