Ich versuche, ein C# -Objekt an einen Web-API-Controller zu übergeben. Die API ist zum Speichern von Objekten vom Typ Produkt konfiguriert, die auf sie gebucht werden. Ich habe erfolgreich Objekte mit der Jquery Ajax-Methode hinzugefügt und jetzt versuche ich, das gleiche Ergebnis in C# zu bekommen.C# -Objekt an Webapi-Controller senden
Ich habe eine einfache Konsolenanwendung erstellt ein Gesuch an die api senden:
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" });
}
Die postproduct Methode nie aufgerufen wird, wie dieses Objekt an die Steuerung zu senden?
Methode für das Hinzufügen von Elementen verwendet:
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;
}
Ihr Code scheint in Ordnung, was siehst du in Fiddler? Haben Sie die Webapi-Ablaufverfolgung auf dem Server aktiviert? –
Ich kann Anfragen sehen, die von einem Formular stammen, das ich verwende. Keine vom HttpClient gesendeten Anfragen sind in Fiddler sichtbar. Ich habe auch die API auf http://producttestapi.azurewebsites.net/api/products hochgeladen, aber keine der Anfragen vom HttpClient erreichen diese API auch nicht. – neo112
Überprüfen Sie auch die index.html dieser URL, das ist die Form, die ich benutze, um Objekte durch Ajax zu senden, dass man funktioniert, damit die API in Ordnung ist. – neo112