我刚开始使用.NET Core做一个新项目。添加了Web API控制器和相关方法。我使用Postman创建了一个JSON对象并将其发布到我的控制器方法。请注意,JSON对象与控制器方法中的Object参数完全匹配。
在调试模式下,我可以看到该对象不为空,属性也都存在,但是属性值被默认为它们所代表的类型,例如int
默认为0
等。
我以前从未见过这种行为……所以我使用完全相同的代码和对象,在一个MVC项目中复制了一个Web API 2控制器,并且它完美地工作。
我错过了什么,我不能在.NET Core中发布JSON并进行模型绑定吗?
阅读本文后,我发现除非我将其作为表单POST或查询字符串变量发送,否则我无法这样做。顺便说一下,这两种方法都可以正常工作。
https://lbadri.wordpress.com/2014/11/23/web-api-model-binding-in-asp-net-mvc-6-asp-net-5/
JSON:
{
"id": "4",
"userId": "3"
"dateOfTest": "7/13/2017"
}
方法:
[HttpPost]
[Route("test1")]
[AllowAnonymous]
public IActionResult Test(Class1 data)
{
return Ok();
}