【发布时间】:2017-02-06 11:19:48
【问题描述】:
我正在从提琴手发送 POST:
POST http://localhost:55924/api/Product HTTP/1.1
User-Agent: Fiddler
Host: localhost:55924
Content-Type: application/json; charset=utf-8
Content-Length: 84
{"Ean″:”1122u88991″,”Name″:”Post test″,"Description":"Post test desc"}
但是 Post 方法总是为空。
// POST api/Product
[HttpPost]
public IActionResult PostProduct([FromBody]Product product)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
_repo.Add(product);
return CreatedAtRoute("GetToode",product);
}
当我使用 [FormBody] 时,产品始终为空,当不使用时,产品被重视,但所有字段均为空。产品类很简单。
public class Product
{
public int ProductID { get; set; }
public string EAN { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int? CategoryID { get; set; }
}
我尝试按照post 中的建议将 NullValueHandling 添加到 ConfigureServices,但没有用。
services.AddMvc()
.AddJsonOptions(jsonOptions =>
{
jsonOptions.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
});
【问题讨论】:
-
尝试发送所有属性。包括
ProductID和CategoryID。 -
这就像你的映射字段不匹配,名称应该与产品类中的相同,也可以尝试删除
[FromBody]
标签: c# .net asp.net-core asp.net-core-webapi