ASP.. NET Web API Post方法错误
本文关键字:方法 错误 Post API NET Web ASP | 更新日期: 2023-09-27 18:12:38
我使用ASP创建API项目。. NET Web 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/
为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);