Ich habe einen API-Controller, der Aktionen zum Abrufen und Bereitstellen von Daten hat. und ich versuche GetProductById meyhod von ajax bu productId Parameter ist immer gleich Null (0). Wenn ich GetAll-Methode mit GET-Methode aufrufen möchte, ist alles in Ordnung. JavaScript-Code ist wie untenASP.NET Core API-Parameter ist null
var product = JSON.stringify({ productId: id });
$http({
method: 'POST',
contentType: 'application/json',
url: '/api/Product/ProductInfo',
data: product
}).then(function successCallback(response) {
console.log(response);
}, function errorCallback(response) {
console.log(response);
});
und API-Controller ist wie unten
[Route("api/Product")]
public class ProductController : BaseController
{
[HttpPost]
[Route("ProductInfo")]
public Product GetProductById([FromBody]int productId)
{
return UnitOfWork.GetRepository<Product>().FirstOrDefault(i => i.Id == productId);
}
[HttpGet]
[Route("GetAll")]
public string GetAll()
{
return "Can";
}
}
Kann mir jemand sagen, warum dieser Fall geschieht?
I-Code geändert. Weder sollte ich url wie path? ProductId = 1 aufrufen, noch sollte ich Referenztypen anstelle primitiver Typen verwenden –
Cool. Das ist im Wesentlichen der richtige Weg zu gehen, da es ein Post ist. :) Obwohl Sie in diesen Fällen ein Schlüsselwertpaar verwenden können, sind keine zusätzlichen Klassen erforderlich. –
KeyValuePair? wie kann ich es von json senden oder ist es klar, von api aktion zu bekommen? –