![](/img/trans.png)
[英]ASP.NET Core 3.1 Web API post method causing 405 "Method Not Allowed" error
[英]ASP.NET Web API Post method error
我使用ASP.NET Web API創建API項目。
並將Product類添加到模型中。
public class Product
{
public int id { get; set; }
public string name { get; set; }
public string category { get; set; }
public decimal price { get; set; }
}
然后將ProductsController類添加到Controllers中。
public IEnumerable<Product> getProductsByCategory(string category)
{
List<Product> productsInCategory = new List<Product>();
foreach (Product p in products)
{
if (p.category.Equals(category, StringComparison.OrdinalIgnoreCase))
productsInCategory.Add(p);
}
return productsInCategory;
}
[HttpPost]
public void PostByProducts(string name)
{
int newId = 0;
//if (products.Count > 0)
// newId = products[products.Count - 1].id + 1;
//products.Add(new Product { id = newId, name = name, category = category, price = price });
}
我使用python請求調用post方法。
import requests
payload = {'name':'t1'}
r = requests.post("http://localhost:59386/api/products", data=payload)
print r.text
但是,Get很好。 發布不順利。
我在PostByProducts方法中標記斷點並調用請求。
但不要停止斷點。
WebApiConfig如下:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.EnableSystemDiagnosticsTracing();
}
}
http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/
使用Model類作為POST方法參數:
[HttpPost]
public void PostByProducts(Product p)
{
products.Add(p);
}
或僅使用一個參數:
[HttpPost]
public void PostByProducts([FromBody] name)
{
//any codes
}
並在這種情況下致電:
// name will be null.
$.post('api/product', { name:tom });
// name will be not null.
$.post('api/values', "=" + value);
請參閱上面的行以獲取更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.